Skip to content

Latest commit

Β 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“š Aura Planner - Study Planner Assistant

Smart Study Scheduling Made Simple
An intelligent study planner that helps students create personalized, difficulty-weighted study schedules with automatic revision planning.

Version Status License


🎯 What is Aura Planner?

Aura Planner is a web-based study scheduling assistant that takes the stress out of exam preparation. Simply input your topics, available study time, and difficulty levels - and let the algorithm create an optimized study plan with built-in revision sessions.

✨ Key Features

  • πŸ“Š Difficulty-Weighted Scheduling - Topics are allocated time based on their difficulty (1-5 scale)
  • πŸ”„ Smart Revision Strategy - Last day automatically reserved for revision of learned topics
  • πŸ“ˆ Progress Tracking - Visual progress bars show completion percentage for each day
  • πŸ“± Responsive Design - Works seamlessly on desktop, tablet, and mobile
  • πŸŒ™ Dark Mode - Easy on the eyes for late-night study planning
  • πŸ“„ PDF Export - Export your study plan as a professional PDF document
  • 🎨 Modern UI - Built with Tailwind CSS for a clean, intuitive interface

πŸš€ Quick Start

Prerequisites

  • Node.js (v14 or higher)
  • npm (v6 or higher)

Installation & Setup

  1. Clone the repository

    git clone https://github.com/Arhum19/SP23BSCS0040.git
  2. Install Frontend Dependencies

    cd auraplanner
    npm install
  3. Install Backend Dependencies

    cd ../backend
    npm install
  4. Start the Backend Server

    # From the backend directory
    npm start
    • Backend runs on: http://localhost:5000
  5. Start the Frontend Development Server

    # Open a new terminal, navigate to auraplanner directory
    cd auraplanner
    npm run dev
    • Frontend runs on: http://localhost:5174
  6. Open Your Browser

    • Navigate to http://localhost:5174
    • Start planning your study schedule! πŸŽ‰

πŸ“– How to Use

Step 1: Enter Schedule Details

Fill in the basic information about your study schedule:

  • Number of Days: How many days until your exam?
  • Available Hours: How many hours can you study each day?

Step 2: Add Topics

For each topic you need to study:

  1. Topic Name: e.g., "Data Structures"
  2. Difficulty Level: Rate from 1 (Easy) to 5 (Very Hard)
  3. Subtopics (Optional): Break down the topic into smaller chunks
    • Each subtopic has a name and percentage weightage
    • Subtopic percentages should add up to 100%

Step 3: Generate Plan

Click "Generate Study Plan" and watch the algorithm create your personalized schedule!

Step 4: Review & Export

  • Expand/collapse days to see detailed sessions
  • View progress bars for each day
  • Export to PDF for printing or sharing

πŸ’‘ Example Usage

πŸ“₯ Example Input

Schedule Configuration:

  • Days: 7 days
  • Daily Hours:
    • Days 1-6: 4 hours each
    • Day 7: 3 hours

Topics:

Topic Difficulty Subtopics
Data Structures 5 Arrays (30%), Linked Lists (35%), Trees (35%)
Algorithms 4 Sorting (40%), Searching (30%), Dynamic Programming (30%)
Database Systems 3 SQL Basics (50%), Normalization (30%), Indexing (20%)

πŸ“Έ Input Screenshot:

alt text alt text


πŸ“€ Example Output

Days 1-6: Learning Phase

  • Each day contains study sessions for different topics/subtopics
  • Sessions are allocated based on difficulty weights
  • Progress bars show completion percentage

Day 7: Revision Phase

  • Final day reserved exclusively for revision
  • Reviews all topics covered in previous days
  • Organized revision sessions

alt text alt text alt text alt text

πŸ“Έ Export PDF Screenshot:


πŸ—οΈ Project Structure

Study-Planner-Assistant/
β”‚
β”œβ”€β”€ auraplanner/              # Frontend (React + Vite)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/       # React components
β”‚   β”‚   β”‚   β”œβ”€β”€ DayDropdown.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ ExportButton.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ PlanView.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ ProgressBar.jsx
β”‚   β”‚   β”‚   └── TopicForm.jsx
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”‚   └── PlannerPage.jsx
β”‚   β”‚   β”œβ”€β”€ App.jsx
β”‚   β”‚   └── main.jsx
β”‚   β”œβ”€β”€ package.json
β”‚   └── vite.config.js
β”‚
β”œβ”€β”€ backend/                  # Backend (Node.js + Express)
|   |__data/
|   |   └── plans.json        # Persisted study plans
|   β”œβ”€β”€ node_modules/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ scheduler.js      # Core scheduling algorithm
β”‚   β”‚   └── server.js         # Express server
β”‚   └── package.json
β”‚
└── documentation/            # Project documentation
    β”œβ”€β”€ ProblemStatement.md
    β”œβ”€β”€ AI-log.md
    β”œβ”€β”€ TestPlan.md
    β”œβ”€β”€ UseCases.md
    └── ReleaseRoadmap.md

πŸ› οΈ Technology Stack

Frontend

  • React 18 - UI framework
  • Vite - Build tool and dev server
  • Tailwind CSS - Utility-first CSS framework
  • Lucide React - Icon library

Backend

  • Node.js - JavaScript runtime
  • Express.js - Web framework
  • CORS - Cross-origin resource sharing

πŸ“Š Algorithm Details

Difficulty Weighting System

DIFFICULTY_WEIGHTS = {
  1: 1.0, // Easy
  2: 1.2, // Medium-Easy
  3: 1.4, // Medium
  4: 1.7, // Medium-Hard
  5: 2.0, // Very Hard
};

Scheduling Strategy

  1. Last Day Reservation: Final day is exclusively for revision
  2. Learning Phase: Days 1 to N-1 for new content
  3. Time Allocation: Topics receive time proportional to difficulty Γ— weight
  4. Dynamic Distribution: Sessions spread across available days
  5. Progress Calculation: Based on time consumed vs. allocated

Key Constraints

  • Minimum session duration: 15 minutes (0.25h)
  • Revision only for topics with consumed time > 0.01h
  • All topics distributed regardless of time constraints
  • Progress shows realistic completion percentage

🎨 Features Showcase

Expand/Collapse All

  • Toggle all days open or closed with one click
  • Individual day expansion for focused viewing

Dark Mode

  • System-friendly dark theme
  • Reduces eye strain during late-night planning
  • Persistent preference

Responsive Design

  • Mobile-first approach
  • Touch-friendly controls
  • Adapts to any screen size

PDF Export

  • Professional table format
  • Color-coded session types (Learning vs. Revision)
  • Print-ready layout
  • Browser-based (no external dependencies)

πŸ“š Documentation

Comprehensive documentation is available in the /documentation folder:


πŸ› Known Limitations

  • No Persistence: Plans are not saved (coming in v2.0 with database)
  • Single User: No multi-user support or authentication
  • Static Resources: No external learning resource links yet
  • No Mobile App: Web-only (mobile apps planned for 2026)

πŸš€ Future Roadmap

3-Month Plan (Q1 2026)

  • πŸ” User authentication (JWT)
  • πŸ’Ύ Database integration (MongoDB)
  • πŸ“§ Email notifications
  • 🌐 Multi-language support
  • πŸ“Š Analytics integration

1-Year Plan (2026)

  • πŸ€– AI-powered schedule optimization
  • πŸ“± Mobile applications (iOS & Android)
  • πŸ”— Topic resource links
  • 🀝 Study buddy system
  • πŸ”” Smart notifications & alarms

2-Year Plan (2027)

  • πŸ’³ Premium subscription model
  • πŸ‘¨β€πŸ« Personal teacher consultations
  • πŸ“Ή Live classes & recorded content
  • πŸ€– AI study coach
  • πŸŽ™οΈ Voice commands

See ReleaseRoadmap.md for complete details.


🀝 Contributing

Contributions are welcome! Here's how you can help:

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

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


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

Arhum19


πŸ™ Acknowledgments

  • Built with ❀️ for students struggling with study planning
  • Special thanks to the open-source community
  • Inspired by the need for smarter exam preparation tools

πŸ“ž Support

If you encounter any issues or have questions:

  • πŸ› Open an issue
  • πŸ’¬ Start a discussion in the repository
  • πŸ“§ Contact the maintainer

⭐ Show Your Support

If you find this project helpful, please consider:

  • ⭐ Starring the repository
  • 🍴 Forking and contributing
  • πŸ“’ Sharing with fellow students

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages