A comprehensive platform for students to track their daily study habits, reflect on mental wellness, and receive personalized insights and mentor guidance.
- Daily Study & Wellness Tracker: Log study hours, break time, sleep, stress levels, and focus
- Markdown Journal: Write reflections with full markdown support
- AI-Powered Insights: Receive personalized recommendations after 7 days of tracking
- Streak Tracking: Build consistency with motivational streak tracking
- Progress Analytics: View trends and patterns in your study habits
- Data Export: Download your data as JSON for personal records
- Student Dashboard: View anonymized student entries (when shared)
- Comment System: Provide supportive feedback on student reflections
- Focus Area Suggestions: Recommend specific wellness improvements
- Student Analytics: Track student engagement and progress
- Frontend: React 19, Vite, Tailwind CSS
- State Management: Redux Toolkit
- Authentication: Firebase Auth
- Database: Firebase Firestore
- UI Components: Heroicons, Custom Components
- Markdown: React Markdown with GFM support
- Date Handling: Day.js
- PDF Generation: jsPDF, html2canvas (for future export features)
-
Clone the repository
git clone <repository-url> cd mindtracker
-
Install dependencies
npm install
-
Set up Firebase
- Create a new Firebase project at Firebase Console
- Enable Authentication (Email/Password)
- Enable Firestore Database
- Get your Firebase config and update
src/firebase/config.js:
const firebaseConfig = { apiKey: "your-api-key", authDomain: "your-auth-domain", projectId: "your-project-id", storageBucket: "your-storage-bucket", messagingSenderId: "your-messaging-sender-id", appId: "your-app-id" };
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
src/
βββ components/ # Reusable UI components
β βββ Layout.jsx # Main layout with navigation
β βββ ProtectedRoute.jsx # Authentication wrapper
βββ pages/ # Page components
β βββ LoginPage.jsx # Authentication pages
β βββ RegisterPage.jsx
β βββ StudentDashboard.jsx # Student main dashboard
β βββ DailyTracker.jsx # Daily habit tracking
β βββ JournalPage.jsx # Markdown journal
β βββ InsightsPage.jsx # AI insights and analytics
β βββ ProfilePage.jsx # User profile and settings
β βββ MentorDashboard.jsx # Mentor interface
βββ store/ # Redux store and slices
β βββ store.js # Store configuration
β βββ slices/ # Redux slices
β βββ authSlice.js # Authentication state
β βββ trackerSlice.js # Daily tracking data
β βββ journalSlice.js # Journal entries
β βββ insightsSlice.js # AI insights
β βββ notificationsSlice.js # Streaks and notifications
βββ firebase/ # Firebase configuration
β βββ config.js # Firebase setup
βββ main.jsx # App entry point
The platform supports two user roles:
- Track daily study habits and wellness metrics
- Write journal entries with markdown support
- Receive AI-generated insights
- Share entries with mentors (optional)
- View progress analytics and streaks
- View shared student journal entries
- Provide comments and feedback
- Access student analytics
- Suggest focus areas for improvement
Students can track the following metrics daily:
- Study Hours: Time spent studying (0-24 hours)
- Break Time: Total break time in minutes
- Sleep: Hours of sleep the previous night
- Stress Level: Self-rated stress (1-5 scale)
- Focus Level: Self-rated focus (1-5 scale)
- Reflection: Free-form markdown journal entry
After 7 days of consistent tracking, the system generates personalized insights:
- Pattern Recognition: Identifies correlations between habits
- Positive Reinforcement: Celebrates good practices
- Actionable Suggestions: Provides specific improvement recommendations
- Trend Analysis: Shows progress over time
- Responsive Design: Works on desktop, tablet, and mobile
- Dark/Light Mode Ready: Built with Tailwind CSS for easy theming
- Accessibility: Semantic HTML and keyboard navigation
- Real-time Updates: Instant feedback and auto-save
- Beautiful Animations: Smooth transitions and loading states
npm run buildnpm install -g firebase-tools
firebase login
firebase init hosting
firebase deployCreate a .env file in the root directory:
VITE_FIREBASE_API_KEY=your-api-key
VITE_FIREBASE_AUTH_DOMAIN=your-auth-domain
VITE_FIREBASE_PROJECT_ID=your-project-id
VITE_FIREBASE_STORAGE_BUCKET=your-storage-bucket
VITE_FIREBASE_MESSAGING_SENDER_ID=your-messaging-sender-id
VITE_FIREBASE_APP_ID=your-app-idSet up Firestore security rules:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Users can only access their own data
match /dailyEntries/{document} {
allow read, write: if request.auth != null && request.auth.uid == resource.data.userId;
}
match /journalEntries/{document} {
allow read, write: if request.auth != null && request.auth.uid == resource.data.userId;
allow read: if request.auth != null && resource.data.isPublic == true;
}
match /insights/{document} {
allow read, write: if request.auth != null && request.auth.uid == resource.data.userId;
}
}
}- 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.
- Built with React and Firebase
- UI components inspired by modern design systems
- Icons from Heroicons
- Markdown support via React Markdown
For support, email support@mindtrack.com or create an issue in the repository.
MindTrack - Empowering students to build better study habits and mental wellness through mindful tracking and reflection.