Transform your study sessions with intelligent task management, real-time progress tracking, and AI-powered learning assistance.
- 🤖 AI Study Assistant - Get instant help with your study materials
- ⏱️ Smart Study Timer - Track your study sessions with Pomodoro technique
- 📊 Progress Analytics - Visualize your study habits and improvements
- 📝 Task Management - Organize your assignments and deadlines
- 📚 Subject Tracking - Monitor progress across different subjects
- 🎯 Study Goals - Set and achieve your study targets
- React 18 with TypeScript
- Google's Gemini AI API
- Supabase for Backend
- TailwindCSS for Styling
- PDF.js & Mammoth for Document Processing
- Web Speech API for Voice Input
- Node.js (v18 or higher)
- npm or yarn
- A modern web browser
- Clone the repository
git clone https://github.com/mintahandrews/studymate.git
cd studymate
- Install dependencies
npm install
# or
yarn install
- Set up environment variables
Create a
.env
file in the root directory:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_GEMINI_API_KEY=your_gemini_api_key
- Start the development server
npm run dev
# or
yarn dev
- Open http://localhost:5173 in your browser
npm run build
# or
yarn build
- Frontend Framework: React with TypeScript
- Styling: Tailwind CSS
- State Management: React Context
- Router: React Router
- AI Integration: Google Generative AI
- Backend/Auth: Supabase
- Build Tool: Vite
- Package Manager: npm/yarn
- Icons: Lucide React
- Notifications: react-hot-toast
- Date Handling: date-fns
- File Parsing:
- PDF.js (PDF files)
- Mammoth (Word documents)
- Code Highlighting: react-syntax-highlighter
- Markdown: react-markdown with remark-gfm
studymate/
├── public/
│ └── sounds/ # Notification sound files
├── src/
│ ├── components/ # React components
│ ├── contexts/ # React contexts
│ ├── pages/ # Page components
│ ├── utils/ # Utility functions
│ └── types.ts # TypeScript types
├── .env # Environment variables
└── package.json # Dependencies and scripts
TaskList.tsx
: Main task management componentSubjectManager.tsx
: Subject management interfaceTaskForm.tsx
: Task creation/editing form
PomodoroTimer.tsx
: Pomodoro technique timerStudyTimer.tsx
: Simple study session timer
AiAssistant.tsx
: AI-powered study assistantChatInterface.tsx
: Chat interface for AI interaction
The app uses Tailwind CSS for styling. Customize the theme in tailwind.config.js
:
module.exports = {
theme: {
extend: {
colors: {
// Your custom colors
},
},
},
};
Modify default timer settings in the respective components:
PomodoroTimer.tsx
: Default work/break durationsStudyTimer.tsx
: Default session duration
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
If you find a bug, please open an issue with:
- A clear description of the bug
- Steps to reproduce
- Expected behavior
- Screenshots if applicable
Developed by codemintah
Made with ❤️ for students everywhere