Acadly is a high-performance, full-stack academic management solution designed to streamline institutional workflows, enhance collaboration between educators and students, and centralize all academic operations into a unified digital platform. It minimizes administrative overhead while maximizing productivity, transparency, and accessibility across the entire education lifecycle.
Automated attendance tracking with one-click marking, real-time syncing, and detailed monthly analytics reports for both faculty and administration.
A centralized cloud-based repository for lecture notes, syllabus documents, recorded lectures, and multimedia resources, accessible anytime.
Complete lifecycle management for assignments including creation, submission, deadline tracking, evaluation, and optional automated grading systems.
Role-based dashboards providing personalized insights:
- Students: GPA tracking, attendance stats, schedules, assignments
- Faculty: Class performance analytics, attendance summaries, workload overview
Full institutional control including student enrollment, faculty assignment, course structuring, and academic scheduling.
| Layer | Technology |
|---|---|
| Frontend | HTML5, Vanilla JavaScript, Tailwind CSS |
| Backend | Node.js (v18+), Express.js (v5.1+) |
| Database | MySQL 8+ (Primary), MongoDB (GridFS videos) |
| Auth | JSON Web Tokens (JWT), bcryptjs |
| CSS | Dark theme, Glass morphism, Animations |
| Deployment | Docker, Docker Compose, Self-hosted ready |
- Node.js (v18.0.0 or higher)
- MySQL 8+ (Local or Docker)
- npm package manager
- (Optional) MongoDB for video streaming features
- (Optional) Docker & Docker Compose
See DataBase/README.md for complete setup instructions.
# 1. Clone the repository
git clone https://github.com/pranitdhanade-sys/Acadly.git
cd Acadly
# 2. Install backend dependencies
cd Backend && npm install
# 3. Create .env file in project root
# Copy from .env.example and fill in your values
cp ../.env.example ../.env
# 4. Initialize and seed the database
node setup-db.js
# 5. Start the development server
npm start
# Server runs at http://localhost:3000If .env doesn't exist, create it in the project root with:
# Server
PORT=3000
NODE_ENV=development
# MySQL Database
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=acadly_db
# JWT Authentication
JWT_SECRET=your_long_random_secret_minimum_32_chars
JWT_REFRESH_SECRET=your_refresh_secret
# MongoDB (optional, for video streaming)
MONGO_URI=mongodb://localhost:27017/acadly_videos
# CORS & Security
CORS_ORIGINS=http://localhost:3000,http://localhost:5173# From Backend directory
npm start
# or use nodemon for auto-reload during development
npm run devVisit http://localhost:3000 in your browser.
| Page | Path | Purpose |
|---|---|---|
| Home | / or /Homepage.html |
Landing page |
| Login | /Login.html |
User authentication |
| Dashboard | /dashboard-live.html |
Main dashboard (live updates) |
| Video Player | /videoplayer-live.html |
Video streaming & resume |
| AI Chat | /ai-assistant.html |
AI chatbot assistant |
| Learning Path | /acadly_learning_path.html |
Structured learning roadmap |
| Practice Lab | /practicallab.html |
Lab tasks & challenges |
| 3D Models | /3d-lab.html |
3D model viewer |
| Model Upload | /3d-upload.html |
Upload 3D models |
| Blogs | /blogs.html |
Blog listing |
| Blog Editor | /blog-editor.html |
Write & manage blogs |
| Resource Library | /library.html |
PDF & resource library |
| Contact | /contact.html |
Contact form |
| Endpoint | Method | Purpose |
|---|---|---|
/api/auth/login |
POST | User login |
/api/auth/register |
POST | User registration |
/api/users/* |
GET/POST | User profile & management |
/api/videos |
GET | Fetch video lists |
/api/videos/upload |
POST | Upload videos |
/api/pdfs |
GET/POST | PDF library management |
/api/models |
GET | 3D model listing |
/api/models/upload |
POST | Upload 3D models |
/api/progress/* |
POST | Track learning progress & XP |
/api/dashboard/* |
GET | Dashboard statistics |
/api/roadmap/* |
GET/POST | Learning path progress |
/api/ptl/* |
GET/POST | Practice lab endpoints |
/):
β Correct: href="ai-assistant.html", href="Login.html"
β Wrong: href="/ai-assistant.html", href="../ai-assistant.html"
/):
β Correct: fetch('/api/videos'), fetch('/api/dashboard/summary')
β Wrong: fetch('api/videos'), fetch('./api/videos')
Acadly/
βββ Backend/ # Node.js/Express backend
β βββ server.js # Main server entry point
β βββ package.json # Backend dependencies
β βββ db_config.js # MySQL connection pool
β βββ setup-db.js # Database initialization script
β βββ routes/ # API endpoints
β βββ auth.js # Authentication routes
β βββ videos.js # Video/playlist routes
β βββ progress.js # XP & progress tracking
β βββ dashboard.js # Dashboard data
β βββ pdf-library.js # PDF library routes
β βββ models3d.js # 3D model routes
β βββ ... # Other route files
β
βββ Frontend/ # Vanilla HTML/CSS/JS frontend
β βββ Homepage.html # Landing page
β βββ dashboard-live.html # Live dashboard
β βββ videoplayer-live.html # Video player with resume
β βββ Login.html # Login page
β βββ signup.html # Registration page
β βββ practicelab.html # Practice lab/quiz interface
β βββ library.html # PDF/resource library
β βββ 3d-lab.html # 3D model viewer
β βββ ai-assistant.html # AI chatbot interface
β βββ CSS/ # Stylesheets (Tailwind)
β βββ js/ # JavaScript modules
β β βββ sync-manager.js # Live progress sync
β β βββ ...
β βββ blogs/ # Blog markdown files
β
βββ DataBase/ # Database configurations
β βββ db_config.js # MySQL pool (main)
β βββ db_config_mongo.js # MongoDB connection
β βββ schema.sql # MySQL schema
β βββ schema-mongo.js # MongoDB schemas
β βββ ...
β
βββ AI Backend/ # Python ML/AI services
β βββ main.py # AI service entry
β βββ requirements.txt # Python dependencies
β
βββ .env.example # Environment variables template
βββ package.json # Root dependencies
βββ docker-compose.yml # Docker composition
βββ Dockerfile # Docker image
βββ README.md # This file
βββ server/ # Node.js backend β βββ models/ # Database schemas (Mongoose) β βββ controllers/ # Business logic layer β βββ routes/ # API endpoints β βββ middleware/ # Auth & request processing β βββ .env # Environment variables βββ package.json # Project dependencies βββ README.md # Documentation
---
## π Authentication Flow
* User registers/logs in
* Backend validates credentials
* JWT token is issued
* Token is used for protected API access
* Role-based authorization applied
---
## β‘ Performance & Scalability
* Optimized API structure using Express middleware
* Efficient MongoDB queries via indexing
* Lazy loading and SSR with Next.js
* Containerized deployment support with Docker
---
## π€ Contributing
Contributions are welcome and encouraged.
1. Fork the repository
2. Create a feature branch
```bash
git checkout -b feature/NewFeature
- Commit your changes
git commit -m "Add NewFeature"- Push to your branch
git push origin feature/NewFeature- Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Pranit Dhanade
- GitHub: https://github.com/pranitdhanade-sys
- Focus: Full-Stack Engineering | Robotics | Cybersecurity
Acadly aims to transform traditional education systems into intelligent, automated, and scalable digital ecosystems that empower both educators and learners with modern tools and seamless experiences.