A clean, minimal study tracking web app for GATE CS aspirants. Plan your syllabus, track daily tasks, monitor mock test progress, and stay on schedule.
🌐 Live at: gate.tanishqdev.me
[ Add dashboard screenshot here ]
- Journey Calendar — full visual calendar from today to your GATE exam date, color-coded by event type
- Subject Progress — define your own units, lectures/day, and target dates. Progress fills as you mark done
- Daily Task System — add tasks per day, mark individually, tracks partial completion honestly
- Quick Fill — bulk-assign tasks across a date range in one shot
- Mock Test Tracker — log scores, view trend graphs, subject-wise weakness radar
- Schedule Drift — miss a day? cascade-shift your entire future schedule forward with one click
- Analytics — syllabus coverage, daily hours chart, Gantt chart, missed days
- Gamification — XP, levels, streaks, badges, weekly challenges
- Auth — email/password + Google sign-in
| Frontend | React + Vite |
| Styling | TailwindCSS |
| Charts | Recharts |
| Database | Firebase Firestore |
| Auth | Firebase Authentication |
| Storage | Firebase Storage |
| Hosting | Firebase Hosting |
git clone https://github.com/YOUR_USERNAME/gate-cs-tracker.git
cd gate-cs-tracker
npm installYou need your own Firebase project:
- Go to console.firebase.google.com → create a project
- Register a Web App → copy the
firebaseConfigobject - Enable Firestore Database → test mode → region
asia-south1 - Enable Authentication → turn on Email/Password and Google
- Enable Storage → test mode
- Update Firestore rules (Rules tab):
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
Create a .env file in the project root:
VITE_FIREBASE_API_KEY=your_key
VITE_FIREBASE_AUTH_DOMAIN=your_domain
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_bucket
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_idUpdate src/firebase/config.js:
const firebaseConfig = {
apiKey: import.meta.env.VITE_FIREBASE_API_KEY,
authDomain: import.meta.env.VITE_FIREBASE_AUTH_DOMAIN,
projectId: import.meta.env.VITE_FIREBASE_PROJECT_ID,
storageBucket: import.meta.env.VITE_FIREBASE_STORAGE_BUCKET,
messagingSenderId: import.meta.env.VITE_FIREBASE_MESSAGING_SENDER_ID,
appId: import.meta.env.VITE_FIREBASE_APP_ID
};
⚠️ Add.envto your.gitignore— never commit real keys to GitHub.
npm run dev
[ Add subjects / calendar screenshot here ]
npm run build
firebase deploy --only hostingRun these two commands every time you want to push updates live.
No backdating — if you didn't mark a task done on its day, it's permanently missed. No going back. Honest tracking only.
Cascade shift — missing a day shows a banner asking if you want to shift all future events forward. You choose — the app never moves things silently.
Sem exam vs Leave — both shift the schedule, but only leave days count as drift (falling behind ideal pace).
| Problem | Fix |
|---|---|
| Blank screen after login | Check firebaseConfig values in .env |
| Permission denied | Update Firestore Rules and click Publish |
| Google sign-in blocked | Allow popups for localhost in browser |
| Changes not on live site | Run npm run build before firebase deploy |
Tanishq Pal — GATE CS 2027 aspirant
"A tool is only as good as how honestly you use it."