{"id":31294267,"url":"https://github.com/jstanoeva/course-tracker","last_synced_at":"2026-05-01T18:33:37.542Z","repository":{"id":315658736,"uuid":"1059651246","full_name":"JStanoeva/course-tracker","owner":"JStanoeva","description":"A course tracking application built with React, TypeScript, and Supabase. A collaboration with Bolt⚡.","archived":false,"fork":false,"pushed_at":"2025-09-19T22:27:31.000Z","size":170,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-20T00:00:14.811Z","etag":null,"topics":["backend","bolt","course-tracker","frontend","full-stack","glassmorphism","react","supabase","tailwind-css","typescript"],"latest_commit_sha":null,"homepage":"https://course-tracker-moder-5j5x.bolt.host","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JStanoeva.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-18T18:32:52.000Z","updated_at":"2025-09-19T22:33:38.000Z","dependencies_parsed_at":"2025-09-20T00:10:35.785Z","dependency_job_id":null,"html_url":"https://github.com/JStanoeva/course-tracker","commit_stats":null,"previous_names":["jstanoeva/course-tracker"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/JStanoeva/course-tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JStanoeva%2Fcourse-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JStanoeva%2Fcourse-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JStanoeva%2Fcourse-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JStanoeva%2Fcourse-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JStanoeva","download_url":"https://codeload.github.com/JStanoeva/course-tracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JStanoeva%2Fcourse-tracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276810919,"owners_count":25708883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-24T02:00:09.776Z","response_time":97,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","bolt","course-tracker","frontend","full-stack","glassmorphism","react","supabase","tailwind-css","typescript"],"created_at":"2025-09-24T20:00:00.367Z","updated_at":"2025-09-24T20:00:04.063Z","avatar_url":"https://github.com/JStanoeva.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Course Tracker\n\nA modern, comprehensive learning management system built with React, TypeScript, and Supabase. Track your learning journey with an intuitive interface featuring glassmorphism design, dark/light themes, goal setting, achievement system, and advanced course management tools.\n\n## ✨ Features\n\n### 📚 Course Management\n- **Create \u0026 Edit Courses**: Add courses with descriptions, dates, and color themes\n- **Lesson Tracking**: Organize lessons by type (Lab/Exercise) with completion status\n- **Homework Management**: Track assignments with due dates and submission status\n- **Exam Scheduling**: Schedule and track exam dates and completion\n- **Progress Tracking**: Automatic progress calculation based on completed lessons\n\n### 📅 Timeline View\n- **Interactive Timeline**: Click any course to view a chronological timeline\n- **Event Visualization**: See all lessons, exams, and homework in one unified view\n- **Status Indicators**: Color-coded events (completed, overdue, upcoming)\n- **Responsive Layout**: Timeline appears below selected course on mobile/tablet\n\n### 📝 Enhanced Note-Taking\n- **Rich Text Editor**: Create detailed notes for each lesson with markdown support\n- **Live Preview**: Switch between edit and preview modes to see formatted content\n- **Markdown Support**: Use **bold**, *italic*, lists, and [links](url) in your notes\n- **Note Management**: Edit, delete, and organize notes for better study organization\n\n### 🎯 Goal Setting \u0026 Achievement System\n- **Learning Goals**: Set daily, weekly, monthly, or course-specific learning targets\n- **Progress Tracking**: Visual progress bars with increment controls for quick updates\n- **Goal Categories**: Organize goals by type (daily habits, weekly targets, course milestones)\n- **Smart Completion**: One-click goal completion with automatic progress detection\n- **Achievement Badges**: Unlock rewards for hitting study targets and milestones\n- **Achievement Categories**: Earn badges for study habits, course completion, streaks, and goals\n- **Celebratory Notifications**: Get notified when you unlock new achievements\n\n### 🔥 Study Streak Tracking\n- **Daily Streaks**: Maintain consistent study habits with streak counters\n- **Activity Timeline**: View recent study activities and their impact on streaks\n- **Streak Statistics**: Track current streak vs. longest streak achieved\n- **Motivational Feedback**: Encouragement messages based on your streak progress\n- **Automatic Tracking**: Streaks update automatically when you complete lessons or exams\n\n### ⚡ Bulk Operations\n- **Multi-Select**: Select multiple lessons, exams, or assignments at once\n- **Batch Actions**: Mark multiple items as complete/incomplete, reschedule, or delete\n- **Smart Selection**: \"Select All\" functionality with visual selection feedback\n- **Efficient Management**: Streamline course management with powerful bulk tools\n- **Confirmation Dialogs**: Safe handling of destructive operations\n\n### 🔐 User Authentication\n- **Secure Login/Registration**: Email and password authentication via Supabase\n- **User Profiles**: Customizable usernames with profile management\n- **Password Management**: Change password functionality\n- **User-Specific Data**: Personal course data isolated per user\n\n### 🎨 Modern Design\n- **Glassmorphism UI**: Beautiful translucent design with backdrop blur effects\n- **Dark/Light/System Themes**: Comprehensive theme support with system preference detection\n- **Responsive Layout**: Optimized for desktop, tablet, and mobile devices\n- **Smooth Animations**: Micro-interactions and transitions throughout the app\n- **Tabbed Navigation**: Organized interface with Courses, Goals, and Achievements sections\n- **Enhanced Stats Dashboard**: Comprehensive metrics including streaks and goal progress\n\n## 🛠️ Technologies Used\n\n- **Frontend**: React 18, TypeScript, Vite\n- **Styling**: Tailwind CSS with custom glassmorphism design\n- **Authentication**: Supabase Auth\n- **State Management**: React Context API with multiple specialized contexts\n- **Icons**: Lucide React\n- **Build Tool**: Vite with hot module replacement\n- **Data Persistence**: LocalStorage with user-specific data isolation\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Node.js (v16 or higher)\n- npm or yarn\n- Supabase account (free tier available)\n\n### Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/your-username/course-tracker.git\n   cd course-tracker\n   ```\n\n2. **Install dependencies**\n   ```bash\n   npm install\n   ```\n\n3. **Set up Supabase**\n   - Create a new project at [supabase.com](https://supabase.com)\n   - Go to Settings \u003e API to get your project URL and anon key\n   - Create a `.env` file in the project root:\n     ```env\n     VITE_SUPABASE_URL=your_supabase_project_url\n     VITE_SUPABASE_ANON_KEY=your_supabase_anon_key\n     ```\n\n4. **Configure Supabase Auth**\n   - In your Supabase dashboard, go to Authentication \u003e Settings\n   - **Disable email confirmations** (set \"Enable email confirmations\" to OFF)\n   - This allows users to register without email verification\n\n5. **Start the development server**\n   ```bash\n   npm run dev\n   ```\n\n6. **Build for production**\n   ```bash\n   npm run build\n   ```\n\n## 🔧 Configuration\n\n### Environment Variables\n\nCreate a `.env` file with the following variables:\n\n```env\nVITE_SUPABASE_URL=your_supabase_project_url\nVITE_SUPABASE_ANON_KEY=your_supabase_anon_key\n```\n\n### Supabase Setup\n\nThe application uses Supabase for authentication only. No database tables are required as course data is stored locally per user. The authentication system uses:\n\n- **Built-in Auth**: Supabase's authentication system\n- **User Metadata**: Username stored in `user_metadata` field\n- **No Custom Tables**: Course data is stored in browser localStorage, isolated per user\n\n## 📱 Usage\n\n### Getting Started\n1. **Register/Login**: Create an account or sign in with existing credentials\n2. **Add Courses**: Click \"Add Course\" to create your first course\n3. **Set Goals**: Navigate to the Goals tab to create learning objectives\n4. **Manage Content**: Add lessons, homework, and exams to your courses\n5. **Take Notes**: Add rich text notes to lessons for better organization\n6. **Track Progress**: Check off completed items and watch your streaks grow\n7. **View Timeline**: Click on any course card to see its chronological timeline\n8. **Earn Achievements**: Complete goals and maintain streaks to unlock badges\n9. **Use Bulk Operations**: Select multiple items for efficient course management\n\n### Course Management\n- **Course Details**: Title, description, start/end dates, and color theme\n- **Lesson Types**: Distinguish between lab sessions and regular exercises\n- **Homework Tracking**: Due dates, completion, and submission status\n- **Progress Calculation**: Automatic progress based on completed lessons\n\n### Goal Setting\n- **Goal Types**: Daily, weekly, monthly, or course-specific goals\n- **Progress Controls**: Use + button to increment progress or ✓ to mark complete\n- **Deadline Tracking**: Visual indicators for approaching deadlines\n- **Achievement Integration**: Goal completion triggers automatic achievement checks\n\n### Achievement System\n- **Milestone Rewards**: Unlock achievements for first lesson, study streaks, goal completion\n- **Visual Gallery**: View all unlocked achievements with dates and descriptions\n- **Automatic Detection**: Achievements unlock automatically based on your activity\n\n### Timeline Features\n- **Chronological View**: All course events sorted by date\n- **Event Status**: Visual indicators for completed, overdue, and upcoming items\n- **Responsive Design**: Timeline appears below selected course on mobile\n\n## 🎨 Design System\n\nThe application uses a custom design system built on Tailwind CSS:\n\n- **Colors**: Custom primary palette with glassmorphism variants\n- **Typography**: Clean, readable font hierarchy\n- **Spacing**: Consistent 8px spacing system\n- **Components**: Reusable components with backdrop blur effects\n- **Animations**: Smooth transitions and micro-interactions\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## 🎯 Future Enhancements\n\nPlanned features for upcoming releases:\n- Study time tracking with Pomodoro timer\n- Calendar integration with drag-and-drop scheduling  \n- Data export/import functionality\n- Mobile PWA support with offline capabilities\n- Advanced analytics and progress insights\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- Design inspired by modern glassmorphism trends\n- Icons provided by [Lucide React](https://lucide.dev/)\n- Authentication powered by [Supabase](https://supabase.com/)\n- Built with [Vite](https://vitejs.dev/) and [React](https://reactjs.org/)\n\n---\n\n**Made by Tora Blaze with ❤️ for learners everywhere**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjstanoeva%2Fcourse-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjstanoeva%2Fcourse-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjstanoeva%2Fcourse-tracker/lists"}