Student Planner is a full-stack web application designed to help students manage their time, assignments, and academic activities. The project incorporates gamification elements (XP and leveling systems) to motivate users to work consistently and complete tasks on time.
Main dashboard of the application.
-
🔐 User Authentication: Secure registration and login flow utilizing JSON Web Tokens (Access & Refresh tokens) and Bcrypt password hashing.
-
🎮 Gamified Activities: Users can create categories for school subjects, projects, or hobbies. Completing tasks rewards the user with Experience Points (XP), allowing them to level up specific activities and track their total time investment.
-
📋 Task & Subtask Management:
-
Add detailed tasks with descriptions, estimated completion times, priorities, and due dates.
-
Break down complex assignments into manageable Subtasks (to-do lists).
-
Built-in timer to track the exact time spent on active tasks.
-
Kanban-style tracking ("To Do", "In Progress", "Done").
-
-
🧠 Automated Scheduling Algorithm (Planner):
- Users define their preferred free time slots for each day of the week.
- The algorithm automatically generates an optimized daily schedule (for today or tomorrow).
- It intelligently allocates tasks to specific time blocks by calculating task duration, priority, due dates, and the user's defined free time.
- Generated schedules can be manually edited and adjusted.
The automated algorithm allocates tasks around the user's defined free time.
The project is divided into a frontend client and a backend API, both heavily utilizing TypeScript for type safety.
- Framework: React (v19)
- Build Tool: Vite
- Routing: React Router (v7)
- State & Data Fetching: Axios
- Date Manipulation: Day.js
- Auth Utilities: jwt-decode
- Styling: CSS Modules
- Environment: Node.js
- Framework: Express.js
- Database: SQLite (Local development database)
- ORM: Prisma
- Security & Auth: JWT, Bcrypt, CORS
- Environment Management: dotenv
To run the project locally, you will need to start both the backend server and the frontend development environment.
Prerequisites: Ensure you have Node.js installed.
Clone the repository and enter it:
git clone https://github.com/AvilS-PL/student-planner.git
cd student-plannerNavigate to the backend directory, install dependencies, and initialize the database:
cd backend
npm install
# Setup the SQLite database and generate the Prisma Client
npx prisma migrate reset
npx prisma generate
# Start the development server (runs on the port defined in .env, default 3000)
npm run devOpen a new terminal window, navigate to the frontend directory, and start the Vite server:
cd student-planner
npm install
# Start the frontend application
npm run dev


