Skip to content

About

Full-featured streaming platform built with the MERN stack

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Filmu -- Streaming Platform

React Node.js Express MongoDB Prisma Vite

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.


Features

  • 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

Tech Stack

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
Email Nodemailer
Charts Chart.js, react-chartjs-2
Scheduling node-cron

Getting Started

Prerequisites

  • Node.js 18+
  • MongoDB instance (local or Atlas)

Backend

cd api
npm install

Create a .env file:

DATABASE_URL=mongodb://localhost:27017/filmu
JWT_SECRET=your-jwt-secret
npx prisma generate
npm run dev

API runs at http://localhost:4000.

Frontend

cd GUI
npm install
npm run dev

Frontend runs at http://localhost:5173.

Project Structure

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

Related

Contributing

Contributions are welcome. Fork the repo, create a branch, and submit a pull request.

License

MIT

About

Full-featured streaming platform built with the MERN stack

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages