A comprehensive social media automation platform for video content distribution across multiple platforms.
MisoAuto is a full-stack application that enables users to upload videos and automatically distribute them across various social media platforms including TikTok, YouTube, Instagram, and Facebook. The platform handles video processing, social media account integration, and automated posting with scheduling capabilities.
- Upload and process videos with metadata
- AWS S3 integration for scalable video storage
- Video status tracking (Processing, Ready, Failed)
- Support for multiple video formats
- TikTok - Automated video posting
- YouTube - Video uploads and management
- Instagram - Video content distribution
- Facebook - Cross-platform sharing
- Schedule posts for optimal engagement times
- Bulk posting across multiple platforms
- Post status tracking (Pending, Scheduled, Publishing, Published, Failed)
- Automated retry mechanisms for failed posts
- User authentication and authorization
- Multiple social media account linking per user
- OAuth integration for secure platform connections
- Token management and refresh handling
- Framework: NestJS (Node.js)
- Database: PostgreSQL with Prisma ORM
- Authentication: JWT tokens
- File Storage: AWS S3
- API: RESTful endpoints
- Framework: Next.js 15 with React 19
- Development: Turbopack for fast dev builds
- TypeScript: Full type safety
- Monorepo: Nx workspace for project management
- Testing: Jest for unit and e2e testing
- Linting: ESLint with Prettier
- Database: Prisma for schema management and migrations
misoauto/
βββ backend/ # NestJS API server
β βββ src/ # Application source code
β βββ prisma/ # Database schema and migrations
β βββ package.json # Backend dependencies
βββ frontend/ # Next.js web application
β βββ app/ # Next.js app router
β βββ package.json # Frontend dependencies
βββ nx.json # Nx workspace configuration
βββ package.json # Root workspace configuration
The application uses a relational database structure with the following key entities:
- Users: Core user accounts with authentication
- Videos: Uploaded video content with S3 storage references
- Platforms: Supported social media platforms (TikTok, YouTube, Instagram, Facebook)
- SocialAccounts: Linked social media accounts with OAuth tokens
- VideoPosts: Individual posts across platforms with scheduling and status tracking
- Node.js 18+
- PostgreSQL database
- AWS S3 bucket for video storage
- Social media platform API credentials
-
Clone the repository
git clone <repository-url> cd misoauto
-
Install dependencies
npm install
-
Environment setup
- Copy
.env.exampleto.env - Configure database connection string
- Add AWS S3 credentials
- Set up social media API keys
- Copy
-
Database setup
cd backend npx prisma generate npx prisma db push -
Start development servers
npm run start
This will start both backend and frontend servers concurrently.
# Start both frontend and backend
npm run start
# Start development with watch mode
npm run serve
# Run tests
npm test
# Database operations
cd backend
npx prisma studio # Open database GUI
npx prisma db seed # Seed database with test dataThe backend provides RESTful API endpoints for:
- Authentication: User registration, login, JWT management
- Video Management: Upload, process, and manage video content
- Social Accounts: Link and manage social media accounts
- Platform Integration: Post videos to connected platforms
- Scheduling: Create and manage scheduled posts
- Analytics: Track post performance and user statistics
DATABASE_URL="postgresql://username:password@localhost:5432/misoauto"
JWT_SECRET="your-jwt-secret"
AWS_ACCESS_KEY_ID="your-aws-access-key"
AWS_SECRET_ACCESS_KEY="your-aws-secret-key"
AWS_S3_BUCKET="your-s3-bucket-name"
AWS_REGION="us-east-1"
# Social Media API Keys
TIKTOK_CLIENT_ID="your-tiktok-client-id"
TIKTOK_CLIENT_SECRET="your-tiktok-client-secret"
YOUTUBE_CLIENT_ID="your-youtube-client-id"
YOUTUBE_CLIENT_SECRET="your-youtube-client-secret"
# ... other platform credentials- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow TypeScript best practices
- Write unit tests for new features
- Use Prettier for code formatting
- Follow commit message conventions
- Update documentation for API changes
-
Backend Deployment
- Deploy NestJS application to cloud provider
- Configure production database
- Set up AWS S3 for file storage
- Configure environment variables
-
Frontend Deployment
- Build Next.js application
- Deploy to Vercel, Netlify, or similar platform
- Configure API endpoints
-
Database Migration
npx prisma migrate deploy
For questions, issues, or contributions, please:
- Open an issue on GitHub
- Contact the development team
- Check the documentation for common solutions
MisoAuto - Simplifying social media video distribution with automation and intelligence.