π Video-sharing social networking app for short-form looping videos.
windmill
is a simplified video-sharing social network built using Swift 5 and Go, where users can record, edit and post looping short-form videos.
Features | |
---|---|
πΉ | Record βTikTokβ style looping videos |
βοΈ | Add custom text and captions to your videos |
π€ | Create an account and customize your profile |
π | Follow friends and like their videos |
π° | Browse newsfeed of videos from users you follow |
π | View activity feed to see who is interacting with your profile |
π¦ | Swift 5 |
β‘οΈ | Go |
First you will need to create a MongoDB instance, this can be either local or via MongoDB Atlas. Note your database URI.
Once this is done, you will need to create an AWS S3 bucket and set the store to public. Follow this link for instructions on how to make this public (https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-bucket.html).
# Update and install deps
pod update
pod install
Navigate here to get both of those (https://developers.google.com/identity/sign-in/ios/start-integrating) and follow all instructions
# Add credentials and other config settings to Config.plist file
ROOT_URL = http://localhost:8080
BUCKET_URL = https://my-project.s3.us-east-2.amazonaws.com
GOOGLE_CLIENT_ID = ENTER ID HERE
APP_BUNDLE_ID = io.liamreardon.windmill.dev
APP_NAME = windmill
# Build go.mod
go build
# Install dependencies
go install
# Create .env file in windmill-backend directory and add MongoDB URI + AWS S3 vars
touch .env
# Include these lines but swap in your own urls and vars
DB_URI=mongodb://localhost:27017/myproject (this could be the uri for a local instance or MongoDB Atlas)
AWS_S3_BASE=https://myproject.s3.us-east-2.amazonaws.com/users/
AWS_S3_REGION=us-east-2
AWS_S3_BUCKET=my-project
# Add MongoDB URL to config.go
func GetConfig() *Config {
uri, exists := os.LookupEnv("DB_URI")
if exists {
return &Config{
DbURI: uri,
Port: ":8080",
}
}
return &Config{}
}
# Run
go run main.go
windmill is available under the MIT license, see the LICENSE file for more information.