A production-ready Full Stack application with a Flask Backend, MongoDB Atlas Database, and React Native (Expo) Frontend.
- Backend: Flask API handling Authentication (JWT), Data Modeling (MongoDB), and Video Masking logic.
- Frontend: React Native "Thin Client" focusing solely on UI/UX and API consumption.
- Security: Password hashing with Bcrypt, JWT for session management, and URL abstraction to hide raw video sources.
- Navigate to the
backendfolder. - Create a
.envfile based on.env.example. - Install dependencies:
pip install -r requirements.txt
- Seed the database (optional but recommended):
python seed_db.py
- Run the server:
python app.py
- Navigate to the
mobilefolder. - Install dependencies:
npm install
- Update
services/api.jswith your computer's local IP address if using a physical device. - Start the app:
npx expo start
The mobile app NEVER sees the raw YouTube URL. It fetches a masked stream URL from the backend, which then resolves to a secure embed link. This ensures content security and allows for backend control over video sources.