Skip to content

kuberbassi/acadhub

Repository files navigation

AcadHub Logo

πŸŽ“ AcadHub

Your Smart Academic Companion

Live Demo

React TypeScript Flask MongoDB Expo License


⚑ What is AcadHub?

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.


🎯 Features at a Glance

πŸ“Š Attendance Tracking

  • Real-time percentage calculations
  • Bunk Calculator - Know when you can skip
  • Medical leave tracking
  • Multi-semester isolation
  • Beautiful calendar heatmaps

πŸ“… Smart Timetable

  • Customizable periods & breaks
  • Quick attendance from schedule
  • Today's classes highlighted
  • Subject color coding

πŸ“ˆ Analytics Dashboard

  • Weekly attendance trends
  • Subject-wise breakdowns
  • Streak tracking
  • Performance insights

πŸŽ“ Results Management

  • SGPA/CGPA calculator
  • Grade tracking per subject
  • Credit-weighted calculations
  • Grading key reference

🎯 Skills Tracker

  • Track skill development
  • Progress visualization
  • Multiple categories
  • Level badges

⌨️ Keyboard Shortcuts

  • Ctrl+N β†’ Notifications
  • Ctrl+D β†’ Dashboard
  • Ctrl+T β†’ Timetable
  • Esc β†’ Close modals
  • Arrow keys β†’ Scroll modals

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         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     β”‚                               β”‚
β”‚                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Prerequisites

Node.js 18+  β”‚  Python 3.8+  β”‚  MongoDB URI  β”‚  Google OAuth Credentials

πŸ–₯️ Web Development

# 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 dev

Access: http://localhost:5173

πŸ“± Mobile Development

cd mobile
npm install
npx expo start

🐳 Docker (Full Stack)

docker-compose up --build
Service URL
Frontend http://localhost:3000
Backend http://localhost:5000
MongoDB localhost:27017

βš™οΈ Configuration

Environment Variables

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/callback
Frontend (.env)
VITE_API_BASE_URL=http://localhost:5000
VITE_GOOGLE_CLIENT_ID=xxxxx.apps.googleusercontent.com

πŸ“ Project Structure

acadhub/
β”œβ”€β”€ 🌐 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!

πŸ”‘ API Endpoints

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

🎨 Theming

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

⌨️ Keyboard Shortcuts

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

🚒 Deployment

Vercel (Recommended)

  1. Connect GitHub repo to Vercel
  2. Configure environment variables
  3. Deploy automatically on push

Live at: acadhub.kuberbassi.com

Mobile Release

# Build APK
cd mobile
npx expo prebuild --platform android --clean
cd android && ./gradlew assembleRelease

# APK location: android/app/build/outputs/apk/release/

πŸ“Š Performance

Metric Score
Lighthouse 95+
Mobile FPS 120fps (ProMotion)
API Response <100ms
Bundle Size ~250KB gzipped

πŸ›‘οΈ Security

  • βœ… Google OAuth 2.0 authentication
  • βœ… JWT token validation
  • βœ… Rate limiting on API endpoints
  • βœ… CORS protection
  • βœ… XSS protection headers
  • βœ… Secure session management

🀝 Contributing

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing)
  5. Open Pull Request

πŸ“„ License

MIT License - see LICENSE for details.


πŸ‘¨β€πŸ’» Author

Kuber Bassi

GitHub Website Email


Built with ❀️ and β˜• using Agentic AI

Β© 2024-2026 AcadHub. All rights reserved.

About

AcadHub is a comprehensive student assistant application designed to help you manage your academic life. Track attendance, manage manual courses - all in one place.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors