Role-Based Internship / OJT Management System is a centralized, secure platform for managing internship workflows.
- Comprehensive Project Guide - Detailed architecture, feature walkthrough, and advanced setup.
- Backend README - Specifics for the FastAPI server.
- Frontend README - Specifics for the React application.
- Quick Start (Automated)
- Tech Stack
- Prerequisites
- Manual Setup
- Default Credentials
- Important Notes
- Project Structure
The project includes a run.sh script that automatically sets up the database, backend, and frontend.
chmod +x run.sh
./run.shThis will start:
- Frontend on http://localhost:3000
- Backend on http://localhost:8000
- API Docs on http://localhost:8000/docs
- Frontend: React.js / Vite / Tailwind CSS
- Backend: Python / FastAPI
- Database: PostgreSQL
- Auth: JWT (JSON Web Tokens)
- Python 3.8+
- Node.js & npm
- PostgreSQL (running locally on port 5432)
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python3 init_db.py # Reset/Initialize Database
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reloadcd frontend
npm install
npm run dev -- --host 0.0.0.0 --port 3000After running init_db.py, use these accounts for testing:
- Admin:
admin@ojt.com/admin123 - Mentor:
mentor@ojt.com/mentor123 - Student:
student@ojt.com/student123
If you use localtunnel (e.g., npx localtunnel --port 3000):
- Mixed Content: Accessing an HTTPS tunnel while the backend is on HTTP (
localhost:8000) might be blocked by browsers. - CORS: Ensure your tunnel URL is added to
CORS_ORIGINSinbackend/.env. - Workaround: For full remote access, tunnel BOTH port 3000 and 8000, and update
frontend/.envwith the backend tunnel link.
Anti_OJT/
├── backend/ # FastAPI Project
│ ├── app/ # Source code
│ └── init_db.py # Database Seeder
├── frontend/ # React + Vite Project
│ └── src/ # Components, Context, Pages
├── run.sh # Orchestration Script
└── README.md # This File