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
.envfile 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
