Your Smart Academic Companion
Track attendance. Manage schedules. Stay organized. All in one place.
AcadHub is a full-stack academic management platform built for college students to effortlessly track their attendance, manage timetables, monitor skills, and stay on top of their academic life.
|
|
|
|
|
|
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AcadHub β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββββββ β
β β Frontend β β Mobile β β Backend β β
β β (React) β β (RN/Expo) β β (Flask) β β
β β β β β β β β
β β β’ TypeScript β β β’ JavaScript β β β’ Python 3.8+ β β
β β β’ Tailwind β β β’ Native UI β β β’ MongoDB Atlas β β
β β β’ Framer β β β’ MMKV Cache β β β’ Google OAuth β β
β β β’ PWA Ready β β β’ 120fps β β β’ Socket.IO β β
β ββββββββ¬ββββββββ ββββββββ¬ββββββββ ββββββββββββ¬ββββββββββββ β
β β β β β
β βββββββββββββββββββ΄βββββββββββββββββββββββ β
β β β
β ββββββββ΄βββββββ β
β β MongoDB β β
β β Atlas β β
β βββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Node.js 18+ β Python 3.8+ β MongoDB URI β Google OAuth Credentials# Clone & Setup
git clone https://github.com/kuberbassi/acadhub.git
cd acadhub
# Backend
python -m venv venv
.\venv\Scripts\Activate.ps1 # Windows
pip install -r requirements.txt
python run.py
# Frontend (new terminal)
cd frontend
npm install
npm run devAccess: http://localhost:5173
cd mobile
npm install
npx expo startdocker-compose up --build| Service | URL |
|---|---|
| Frontend | http://localhost:3000 |
| Backend | http://localhost:5000 |
| MongoDB | localhost:27017 |
Backend (.env)
MONGO_URI=mongodb+srv://user:pass@cluster.mongodb.net/acadhub
FLASK_SECRET_KEY=your-super-secret-key
FLASK_ENV=development
GOOGLE_CLIENT_ID=xxxxx.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-xxxxx
GOOGLE_REDIRECT_URI=http://localhost:5000/api/auth/callbackFrontend (.env)
VITE_API_BASE_URL=http://localhost:5000
VITE_GOOGLE_CLIENT_ID=xxxxx.apps.googleusercontent.comacadhub/
βββ π frontend/ # React + TypeScript + Tailwind
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Route pages
β β βββ hooks/ # Custom React hooks
β β βββ services/ # API service layer
β β βββ contexts/ # React contexts
β βββ public/ # Static assets
β
βββ π± mobile/ # React Native + Expo
β βββ src/
β β βββ screens/ # Navigation screens
β β βββ components/ # Native components
β β βββ services/ # API + caching
β β βββ contexts/ # Theme, Auth contexts
β βββ android/ # Android build files
β
βββ π§ api/ # Flask + MongoDB
β βββ routes/ # API route handlers
β βββ middleware/ # Security, logging
β βββ utils/ # Helper functions
β
βββ π vercel.json # Deployment config
βββ π³ docker-compose.yml # Container orchestration
βββ π README.md # You are here!
Authentication
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/auth/google |
Initiate Google OAuth |
| GET | /api/auth/callback |
OAuth callback |
| POST | /api/auth/logout |
End session |
| GET | /api/current_user |
Get logged-in user |
Subjects & Attendance
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/subjects |
List all subjects |
| POST | /api/subjects |
Create subject |
| PUT | /api/subjects/:id |
Update subject |
| DELETE | /api/subjects/:id |
Delete subject |
| POST | /api/mark_attendance |
Mark attendance |
| GET | /api/attendance_logs |
Get logs by date |
Dashboard & Analytics
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/dashboard_data |
Dashboard overview |
| GET | /api/reports_data |
Analytics data |
| GET | /api/calendar_data |
Calendar heatmap |
AcadHub supports 12 accent colors with automatic dark/light mode:
| Color | Hex |
|---|---|
| π΅ Blue | #0A84FF |
| π Purple | #BF5AF2 |
| π’ Green | #30D158 |
| π Orange | #FF9F0A |
| π΄ Red | #FF453A |
| πΈ Pink | #FF375F |
| π‘ Yellow | #FFD60A |
| π©΅ Teal | #64D2FF |
| π€ Brown | #AC8E68 |
| π£ Indigo | #5E5CE6 |
| βͺ Mint | #66D4CF |
| π©Ά Graphite | #8E8E93 |
| Shortcut | Action |
|---|---|
Ctrl + N |
Open Notifications |
Ctrl + D |
Go to Dashboard |
Ctrl + T |
Open Timetable |
Ctrl + A |
Open Analytics |
Ctrl + Shift + C |
Open Calendar |
Ctrl + Shift + S |
Open Settings |
Escape |
Close any modal |
β / β |
Scroll in modals |
Page Up/Down |
Fast scroll |
- Connect GitHub repo to Vercel
- Configure environment variables
- Deploy automatically on push
Live at: acadhub.kuberbassi.com
# Build APK
cd mobile
npx expo prebuild --platform android --clean
cd android && ./gradlew assembleRelease
# APK location: android/app/build/outputs/apk/release/| Metric | Score |
|---|---|
| Lighthouse | 95+ |
| Mobile FPS | 120fps (ProMotion) |
| API Response | <100ms |
| Bundle Size | ~250KB gzipped |
- β Google OAuth 2.0 authentication
- β JWT token validation
- β Rate limiting on API endpoints
- β CORS protection
- β XSS protection headers
- β Secure session management
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing) - Open Pull Request
MIT License - see LICENSE for details.
Kuber Bassi
Built with β€οΈ and β using Agentic AI
Β© 2024-2026 AcadHub. All rights reserved.
