A comprehensive web application that gamifies the academic experience for students, featuring assignment tracking, study sessions, quests, achievements, and a virtual shop system. Built for the Association for Computing Machinery (ACM) to enhance student engagement and academic performance.
- Registration: Create an account with email and password
- Dashboard: View your progress, XP, coins, and upcoming deadlines
- Assignments: Create and track academic assignments
- Study Sessions: Use the Pomodoro timer to log study time
- Quests: Complete daily and weekly challenges for rewards
- Shop: Spend coins on boosts, themes, and cosmetics
- Profile: Customize your avatar, title, and view achievements
- Content Management: Create quests, shop items, and events
- User Oversight: Monitor student progress and engagement
- System Configuration: Manage rewards, XP values, and shop items
- Framework: Express.js with RESTful API design
- Database: MongoDB with Mongoose ODM
- Authentication: Session-based authentication with bcrypt password hashing
- Session Storage: MongoDB-backed sessions with connect-mongo
- File Structure:
├── config/ # Database configuration ├── controllers/ # Business logic controllers ├── middleware/ # Authentication & upload middleware ├── models/ # MongoDB schemas ├── routes/ # API route definitions ├── scripts/ # Database initialization scripts └── utils/ # Utility functions
- Architecture: Multi Page Application (SPA) with vanilla JavaScript
- Styling: Custom CSS with CSS variables and modern design
- Responsive Design: Mobile-first approach with responsive navigation
- File Structure:
public/ ├── index.html # Main dashboard ├── app.js # Frontend JavaScript ├── style.css # Global styles └── pages/ # Individual page components ├── assignments.html ├── exams.html ├── study.html ├── grades.html ├── quests.html ├── shop.html ├── events.html ├── profile.html └── auth.html
- User: Student profiles with XP, coins, level, badges, inventory
- Assignment: Academic assignments with due dates and rewards
- Exam: Scheduled exams with difficulty and study requirements
- Grade: Academic performance records with GPA calculation
- StudySession: Study time tracking with XP rewards
- Quest: Gamified challenges with badge rewards
- ShopItem: Virtual store items for purchase
- Event: ACM events and academic deadlines
- Activity: User activity feed and notifications
- UserQuest: Quest progress tracking
- Users have many Assignments, Exams, Grades, StudySessions
- Users can have many Quests (many-to-many through UserQuest)
- Users can purchase many ShopItems (stored in inventory)
- Activities track all user actions for the activity feed
- Node.js (v14 or higher)
- MongoDB (local or MongoDB Atlas)
- Git
-
Clone the repository
git clone <repository-url> cd AMC-Gamification-Project
-
Install dependencies
npm install
-
Environment Configuration Create a
.envfile in the root directory:MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/amc-learning SESSION_SECRET=your-secret-key-here PORT=5000
-
Database Setup
# Initialize sample data npm run init-db # Create admin user (optional) npm run create-admin
-
Start the application
# Development mode npm run dev # Production mode npm start
-
Access the application
- Open your browser to
http://localhost:5000(orhttp://127.0.0.1:5000) - Default admin credentials:
admin@acmlearning.com/admin123
- Open your browser to
- Mobile App: React Native or Flutter mobile application
- Advanced Analytics: Detailed progress tracking and insights
- AI Integration: Personalized study recommendations
- Advanced Gamification: More quest types and achievement systems
- API Versioning: Versioned API endpoints
- Caching: Redis integration for improved performance
- Testing: Comprehensive test suite with Jest
- Monitoring: Application performance monitoring
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
- JavaScript: ES6+ with consistent formatting
- CSS: Use CSS variables and mobile-first approach
- API: Follow RESTful conventions
- Database: Use Mongoose schemas with validation
This project is licensed under the ISC License. See the package.json file for details.
ACM Learning - Gamifying Education for Better Student Engagement 🎓✨