A modern, offline-first study planner and productivity app built with Next.js, Tailwind CSS, and ShadCN UI components. StudyBuddy helps students organize their learning schedule, track study goals, and maintain focus with the Pomodoro technique.
- Smart Scheduling: Create and manage your study schedule with ease
- Goal Tracking: Set and monitor your learning objectives with progress visualization
- Pomodoro Timer: Stay focused with customizable study sessions (25-minute default)
- Weekly Progress Charts: Visualize your study patterns and productivity trends
- Local Storage: All data persists locally - no login required, works offline
- Beautiful Gradients: Eye-catching blue gradient theme throughout the app
- Dark Mode: Toggle between light and dark themes with system preference detection
- Responsive Design: Works perfectly on desktop, tablet, and mobile devices
- ShadCN Components: Professional, accessible UI components
- Tailwind CSS: Utility-first styling for consistent design
- Study Statistics: Track total sessions, completion rates, and average session length
- Weekly Progress: Visual charts showing daily study time distribution
- Goal Completion: Monitor progress towards your learning objectives
- Session History: Detailed record of all your study sessions
- Framework: Next.js 15.1.3 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS 3.4.6
- UI Components: ShadCN UI + Radix UI
- Testing: Jest + React Testing Library
- Storage: Local Storage (offline-first)
- Deployment: Vercel-ready
- Node.js 18+
- npm, yarn, or pnpm
-
Clone the repository
git clone <your-repo-url> cd study-buddy
-
Install dependencies
npm install
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
study-buddy/
├── src/
│ ├── app/ # Next.js App Router pages
│ │ ├── page.tsx # Home page with dashboard
│ │ ├── schedule/ # Schedule management
│ │ ├── plan/ # Goal planning
│ │ ├── study/ # Pomodoro timer & tasks
│ │ └── settings/ # App preferences
│ ├── components/ # Reusable UI components
│ │ └── ui/ # ShadCN components
│ └── lib/ # Utilities & storage
│ ├── storage.ts # Local storage management
│ └── utils.ts # Helper functions
├── public/ # Static assets
├── jest.config.js # Jest configuration
├── tailwind.config.ts # Tailwind CSS config
└── components.json # ShadCN configuration
Run the test suite:
npm testRun tests in watch mode:
npm run test:watchBuild and run with Docker:
# Build the image
docker build -t study-buddy .
# Run the container
docker run -p 3000:3000 study-buddy- Connect your repository to Vercel
- Deploy automatically - Vercel will detect Next.js and configure everything
- Environment variables - No additional configuration needed (uses local storage)
-
Build the application
npm run build
-
Start the production server
npm start
- Home Dashboard: View your study statistics and quick access to all features
- Schedule: Add study sessions, classes, and deadlines
- Plan: Create and track learning goals
- Study: Use the Pomodoro timer for focused study sessions
- Settings: Customize your experience and manage data
- Offline-First: All data is stored locally in your browser
- No Login Required: Start using immediately without account creation
- Data Export/Import: Backup and restore your study data
- Dark Mode: Toggle theme based on your preference
- Responsive: Works on all devices and screen sizes
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm test- Run test suitenpm run test:watch- Run tests in watch mode
- Create components in
src/components/ - Add pages in
src/app/ - Update storage utilities in
src/lib/storage.ts - Add tests for new functionality
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js for the amazing React framework
- Tailwind CSS for the utility-first CSS framework
- ShadCN UI for the beautiful component library
- Radix UI for accessible primitives
Happy Studying! 📚✨