A modern business website for Project Forge - a service helping students with final year projects. Features a React frontend with a Flask backend and Supabase database integration.
project-forge/
├── frontend/ # React (Vite) frontend
│ ├── src/
│ │ ├── components/ # UI components
│ │ ├── pages/ # Page components (including admin)
│ │ ├── lib/ # Utilities and API service
│ │ └── contexts/ # React contexts
│ └── ...
├── backend/ # Flask backend
│ ├── routes/ # API routes
│ ├── migrations/ # SQL migration scripts
│ └── ...
├── .env # Environment variables template
└── .gitignore
- Node.js 18+ and npm
- Python 3.10+
- Supabase account
# Add environment template
ni .env
# Edit .env with your Supabase credentialsAll required environment variables:
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_anon_key
SUPABASE_SERVICE_KEY=your_supabase_service_role_key
FLASK_SECRET_KEY=your_secret_key
ADMIN_USERNAME=admin
ADMIN_PASSWORD=your_admin_password- Go to your Supabase project's SQL Editor
- Run
backend/migrations/001_initial_schema.sql - Run
backend/migrations/002_seed_data.sql - Create a storage bucket named
imagesin Supabase Storage
cd backend
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # macOS/Linux
pip install -r requirements.txt
python app.pyBackend runs at: http://localhost:5000
cd frontend
npm install
npm run devFrontend runs at: http://localhost:8080
- Home Page: Hero section, value proposition, team showcase, tech stack, portfolio, and process timeline
- Project Ideas: Browse project templates with filtering and detailed tech specs
- Contact Form: Dynamic contact modal for inquiries
Access at /admin with configured credentials:
- Dashboard: Overview with stats and recent contacts
- Templates: CRUD for project templates
- Portfolio: CRUD for portfolio projects
- Team: CRUD for team members
- Contacts: View and manage form submissions
- React 18 + TypeScript
- Vite
- Tailwind CSS
- TanStack Query (React Query)
- React Router
- Flask
- Supabase (PostgreSQL + Storage)
- Flask-CORS
This project is licensed under the MIT License 71D9 - see the LICENSE file for details.