A full-stack streaming platform built with the MERN stack. Users can browse movies and TV series, watch live channels via HLS streaming, manage subscriptions, and track watch history. Includes an admin dashboard for user management, transactions, and content administration.
- HLS video streaming -- multiple player options (ArtPlayer, Video.js, HLS.js, ReactPlayer)
- Live channels -- browse and watch live TV with country-based filtering
- Movies & TV series -- catalog with search, details, and watchlist
- User authentication -- JWT-based auth with role management (admin, agent, user)
- Subscription system -- plans, payments, and transaction tracking
- Admin dashboard -- user management, subscription control, financial analytics
- Referral program -- built-in referral code system
- Device management -- track and manage login devices per user
- M3U processing -- utility for converting and filtering IPTV playlist files
- Dark/light mode -- Chakra UI theme switching
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite, Chakra UI, React Router |
| Backend | Node.js, Express 4, Prisma (MongoDB) |
| Database | MongoDB |
| Video | ArtPlayer, HLS.js, Video.js, ReactPlayer |
| Auth | JWT, bcrypt |
| Nodemailer | |
| Charts | Chart.js, react-chartjs-2 |
| Scheduling | node-cron |
- Node.js 18+
- MongoDB instance (local or Atlas)
cd api
npm installCreate a .env file:
DATABASE_URL=mongodb://localhost:27017/filmu
JWT_SECRET=your-jwt-secretnpx prisma generate
npm run devAPI runs at http://localhost:4000.
cd GUI
npm install
npm run devFrontend runs at http://localhost:5173.
filmu-streaming/
├── api/
│ ├── controllers/ # Business logic (12 controllers)
│ │ ├── auth.controller.js
│ │ ├── movie.controller.js
│ │ ├── channel.controller.js
│ │ ├── subscriptions.controller.js
│ │ └── ...
│ ├── routes/ # API endpoints (12 route files)
│ ├── middleware/ # Auth verification, field updates
│ ├── prisma/
│ │ └── schema.prisma # MongoDB data model
│ ├── functions/ # Utility helpers
│ └── app.js # Express entry point
├── GUI/
│ ├── src/
│ │ ├── components/ # React components
│ │ │ ├── Admin/ # Admin dashboard
│ │ │ ├── hlsplayer.jsx # HLS video player
│ │ │ ├── Login.jsx
│ │ │ └── ...
│ │ ├── pages/ # Route pages (movies, shows, channels, search)
│ │ ├── services/ # API client calls
│ │ └── context/ # React Context (transactions)
│ ├── theme.js # Chakra UI theme config
│ └── vite.config.js
└── m3ufiltertojson/ # M3U playlist conversion utility
- filmu-server -- Backend API (standalone)
- filmu-mobile -- React Native mobile app
Contributions are welcome. Fork the repo, create a branch, and submit a pull request.
MIT