Skip to content

Stay organized and crush your deadlines! A smart student planner that uses AI to break down complex assignments into manageable steps.

Notifications You must be signed in to change notification settings

devesh-69/student-task-tracker

Repository files navigation

πŸŽ“ Student Task Tracker

A Modern, Intelligent Task Management System for Students

Made with React TypeScript Powered by Google Gemini Vite Live Demo

Manage your academic journey with smart AI assistance, beautiful UI, and zero dependencies on external servers

✨ Try it Live β†’ https://studenttasky.netlify.app/ ✨

Features β€’ Getting Started β€’ Usage Guide β€’ Tech Stack β€’ Architecture


πŸ“‹ Overview

Student Task Tracker is a powerful, offline-first task management application specifically designed for students. Built with modern web technologies, it provides an intuitive interface for tracking assignments, projects, and academic goals with intelligent AI-powered suggestions.

Why Choose This Tracker?

βœ… 100% Free & Open Source - No subscriptions, no hidden costs
βœ… Privacy-First - All data stored locally on your device
βœ… AI-Powered - Smart task breakdown using Google Gemini
βœ… Beautiful UI - Modern, responsive design with smooth animations
βœ… Zero Setup - No backend servers or databases required
βœ… Offline-Ready - Works completely offline after initial load


✨ Features

Core Functionality

  • πŸ“ Smart Task Management: Create, edit, and delete tasks with title, description, deadline, and progress tracking
  • βœ… Auto-Checklist Detection: Type numbered lists (1., 2., 3.) - they automatically become interactive checkboxes
  • 🎯 Auto-Progress Tracking: Progress calculated automatically from checked items (e.g., 2/4 checked = 50%)
  • πŸ“Š Thread-Based Activity Logs: Comprehensive history of all updates with timestamps (persistent even after task deletion)
  • πŸ”” Deadline Alerts: Automatic overdue detection and visual indicators
  • πŸ‘€ User Profiles: Personalized welcome with optional API key input during onboarding

πŸ“Œ Important Note: When you check/uncheck a box, the system logs it as a thread entry (e.g., "Checked 'First step' - Progress: 25%"). The original checklist item text is never changed - only the completion status and progress are updated.

Backend & Security

  • ☁️ MongoDB Cloud Database: All data persisted to MongoDB Atlas (single source of truth)
  • πŸ” Encrypted API Keys: AES-256 encryption using crypto-js for secure storage
  • πŸ—„οΈ RESTful API: Complete Express.js backend with Mongoose ODM
  • πŸ“œ Persistent Logs: Activity logs survive task deletion (separate collection)
  • ⏱️ Safe Data Management: 10-second countdown with cancel button for clearing data

Advanced Features

  • πŸ€– AI Assistant: Get intelligent task breakdowns powered by Google Gemini 2.5 Flash Lite
  • πŸŽ‰ Celebration Effects: Confetti animation when you reach 100% completion
  • πŸ“± Responsive Design: Works on desktop, tablet, and mobile
  • 🎨 Professional Icons: Lucide React icons throughout (no emojis!)
  • 🎨 Modern UI: Beautiful gradients, glassmorphism effects, and smooth transitions
  • β™Ώ Accessible: Semantic HTML and keyboard-friendly navigation

Interaction Patterns

  • Single Tap/Click: Open task detail view with progress slider
  • Long Press (500ms): Open context menu for edit/delete options
  • AI Assist Button: Generate smart subtask suggestions based on task title
  • Clear Data: Reset all data with double-confirmation safety

πŸš€ Getting Started

Prerequisites

  • Node.js (v18 or higher) - Download here
  • npm or yarn package manager
  • (Optional) Google Gemini API key for AI features - Get free key

Installation

  1. Clone the repository

    git clone <repository-url>
    cd student-task-tracker
  2. Install dependencies

    npm install
  3. Configure API Key (Optional - for AI features)

    Edit .env.local and add your Gemini API key:

    VITE_GEMINI_API_KEY=your_actual_api_key_here

    Note: The app works perfectly fine without an API key. AI Assist will simply show a message to configure the key when clicked.

  4. Start the development server

    npm run dev
  5. Open your browser

    Navigate to http://localhost:3000 and start tracking your tasks! πŸŽ‰

Building for Production

npm run build

Optimized production files will be in the dist/ folder, ready to deploy to any static hosting service (Netlify, Vercel, GitHub Pages, etc.).


πŸ“– Usage Guide

First Time Setup

  1. Onboarding: Enter your name when prompted on first launch
  2. Create Your First Task: Click the floating "+" button
  3. Fill Task Details:
    • Title: Assignment or project name
    • Description: Details, notes, or subtasks
    • Deadline: Due date for the task
    • Status: Initial status (Pending/In Progress/Completed)
    • Progress: How much is complete (0-100%)

Managing Tasks

Creating Tasks

  • Click the floating action button (bottom-right corner)
  • Fill in task details
  • Use AI Assist button for smart subtask suggestions
  • Click Create Task to save

Updating Progress

  • Tap/Click any task card to open detail view
  • Adjust progress using the slider (in 5% increments)
  • Add an optional note to document what you did
  • Click Update Progress & Add Log to save

Editing Tasks

  • Long-press (hold for 500ms) any task card
  • Select Edit Task from the menu
  • Modify any fields and save

Deleting Tasks

  • Long-press the task card
  • Select Delete Task from the menu
  • Confirm deletion

Dashboard Overview

Your dashboard shows:

  • Overall Progress: Average completion across all tasks
  • Pending Tasks: Number of incomplete tasks
  • Completed Tasks: Number of finished tasks
  • Task Cards: All your tasks sorted by creation date

AI Features

Click ✨ AI Assist in the task form description field to:

  • Get suggested study plans
  • Break down complex tasks into steps
  • Receive actionable subtasks

Requires a valid Gemini API key in .env.local

Data Management

Changing Your Name

Click your name in the top-right corner to update your profile.

Clearing All Data

Click Clear Data button (trash icon) in the header:

  • Double-confirmation required for safety
  • Removes all tasks and user profile
  • Triggers onboarding flow again

πŸ› οΈ Tech Stack

Frontend

  • React 19 - Latest React with improved hooks and performance
  • TypeScript 5.8 - Type-safe development
  • Vite 6.2 - Lightning-fast build tool and dev server
  • TailwindCSS - Utility-first CSS via CDN

AI/ML

  • Google Gemini 2.5 Flash - Advanced AI for task suggestions
  • @google/genai - Official Gemini SDK

Storage

  • LocalStorage API - Client-side data persistence
  • Browser Cache - Offline-first architecture

UI/UX Libraries

  • Canvas Confetti - Celebration animations
  • Google Fonts (Inter) - Modern typography
  • Custom Components - Handcrafted UI components

πŸ—οΈ Architecture

Project Structure

student-task-tracker/
β”œβ”€β”€ components/          # Reusable UI components
β”‚   β”œβ”€β”€ ui/             # Base UI components (Button, Modal, Input, etc.)
β”‚   β”œβ”€β”€ TaskList.tsx    # Task grid display
β”‚   β”œβ”€β”€ TaskItem.tsx    # Individual task card with gestures
β”‚   β”œβ”€β”€ TaskForm.tsx    # Create/Edit form with AI assist
β”‚   β”œβ”€β”€ TaskDetailModal.tsx  # Progress slider & logs
β”‚   β”œβ”€β”€ TaskActionMenu.tsx   # Context menu (edit/delete)
β”‚   └── UserOnboardingModal.tsx  # First-time user setup
β”œβ”€β”€ pages/              # Page components
β”‚   └── Home.tsx        # Main dashboard controller
β”œβ”€β”€ services/           # Business logic layer
β”‚   β”œβ”€β”€ taskService.ts  # CRUD operations for tasks
β”‚   β”œβ”€β”€ userService.ts  # User profile management
β”‚   β”œβ”€β”€ geminiService.ts  # AI integration
β”‚   └── audioService.ts   # Sound effects
β”œβ”€β”€ types.ts            # TypeScript interfaces
β”œβ”€β”€ .env.local          # Environment variables
└── index.html          # Entry point with Tailwind config

Data Flow

User Action β†’ Component β†’ Service Layer β†’ LocalStorage
                ↓                ↓
            State Update    Data Validation
                ↓
            UI Re-render

Key Design Patterns

  • Single Source of Truth: All state managed in Home.tsx
  • Service Layer: Separation of UI and data logic
  • Error Boundaries: Comprehensive try-catch blocks
  • Optimistic Updates: Immediate UI feedback with rollback on error
  • Defensive Programming: Input validation at multiple levels

πŸ”’ Privacy & Security

  • No External Servers: All data stays on your device
  • No Tracking: Zero analytics or user tracking
  • No Authentication: No account creation needed
  • Local-Only Storage: Data lives in browser localStorage
  • API Key Safety: Gemini API key stored in environment variables (never in code)

⚠️ Important: Clearing browser data will delete all tasks. Export your data manually if needed (feature can be added).


πŸ› Troubleshooting

AI Assist Not Working

  • βœ… Check that VITE_GEMINI_API_KEY is set in .env.local
  • βœ… Verify API key is valid on Google AI Studio
  • βœ… Restart dev server after changing .env.local
  • βœ… Check browser console for specific error messages

Tasks Not Saving

  • βœ… Check if localStorage is enabled in browser settings
  • βœ… Verify you're not in incognito/private mode
  • βœ… Check if storage quota is exceeded (shows alert)
  • βœ… Try clearing old tasks to free up space

App Not Loading

  • βœ… Ensure Node.js is installed: node --version
  • βœ… Delete node_modules and run npm install again
  • βœ… Check if port 3000 is available
  • βœ… Try a different browser

Data Reset Issues

  • Clear browser cache and cookies for localhost
  • Check browser console for localStorage errors
  • Verify browser supports localStorage API

🎯 Roadmap & Future Enhancements

While this project is feature-complete, potential improvements include:

  • Data export/import (JSON, CSV)
  • Dark mode toggle
  • Calendar view for deadlines
  • Task categories/tags
  • Search and filter functionality
  • Task templates
  • Backend API with MongoDB (optional)
  • Multi-device sync

🀝 Contributing

This is an educational project, but contributions are welcome!

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

πŸ“„ License

This project is open source and available under the MIT License.


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

Built with ❀️ for students, by students.

Project Maintainer: [Your Name]
Google AI Studio: View App


πŸ™ Acknowledgments

  • React Team - For the amazing framework
  • Google Gemini - For powerful AI capabilities
  • Tailwind Labs - For beautiful styling utilities
  • Vite Team - For the blazing-fast dev experience

⭐ Star this repo if you found it helpful!

Made for MCA Students | Built with Modern Web Technologies

About

Stay organized and crush your deadlines! A smart student planner that uses AI to break down complex assignments into manageable steps.

Topics

Resources

Stars

Watchers

Forks