A modern, open-source GATE exam practice and preparation app designed to help you ace your exams.
Website
·
Discord
·
Donate
·
Report Bug
·
Request Feature
GATEQuest is a feature-rich, user-friendly application built to provide a comprehensive and engaging platform for GATE exam aspirants. It offers a clean, modern interface with a focus on usability and performance.
- Interactive Dashboard: Track your preparation with a Target Study Roadmap and a GitHub-style Streak Graph that visualizes your daily questions solved and practice consistency.
- Practice Questions: Access a vast library of GATE and ISRO PYQs across multiple branches (CS, DA, EC, EE, ME, XL), neatly organized by subject, year, and difficulty.
- Multi-Branch Support: Seamlessly switch between target branches, with universal subjects (like General Aptitude) dynamically syncing your progress and mistakes across your goals.
- Bookmarking: Save challenging questions with custom notes for later review and focused practice.
- Performance Tracking: Monitor your progress with detailed statistics on accuracy and overall completion rate.
- Smart Revision: Use the Leitner System to effectively revise weak topics with auto-generated weekly recovery sets.
- Topic Tests: Test your knowledge in a timed environment targeted at specific topics.
- AskAI: Instant AI assistance for step-by-step question breakdown and doubt clearing for FREE.
- Built-in Timer: Simulate real exam conditions with an automatic timer for each question.
- User Profile
[Beta]: Share your public profile with friends and aspirants.(currently in beta). - Light & Dark Modes: Switch between light and dark themes for a comfortable viewing experience.
- Audio Feedback: Get instant audio feedback cues for correct and incorrect answers.
- Secure Authentication: Sign in safely with your Google account, powered by Supabase.
- Cloud Sync: Seamlessly sync your progress and profile across all your devices.
- PWA Support: Install GATEQuest as a Progressive Web App for a full desktop/native app experience.
| Category | Technology |
|---|---|
| Language | |
| Frontend | |
| Backend & Auth | |
| Deployment | |
| State Management | |
| Offline Storage | |
| Animations & UI |
GateQuest/
├── public/ # Static assets
│ ├── ai_providers/ # AI provider logos
│ ├── audio/ # App sound effects
│ ├── icons/ # PWA icons & branding
│ └── screenshots/ # app screenshots
│
├── src/
│ ├── app/ # App entry, layout, routing, providers
│ │ ├── layout/ # Navbar, sidebar, responsive layout
│ │ ├── providers/ # Global React context providers
│ │ └── routes/ # Route definitions
│ │
│ ├── features/ # Feature-based architecture
│ │ ├── dashboard/ # Stats, streaks, study plan
│ │ ├── practice/ # Practice question flow
│ │ ├── questions/ # Question engine & renderers
│ │ ├── smart-revision/ # Weekly smart revision system
│ │ ├── topic-test/ # Topic-wise test engine
│ │ ├── auth/ # Authentication
│ │ ├── settings/ # User/app settings
│ │ ├── donations/ # Donation system
│ │ ├── landing/ # Landing page
│ │ └── about/ # About page
│ │
│ ├── shared/ # Shared reusable code
│ │ ├── api/ # Shared API utilities
│ │ ├── components/ # Reusable UI components
│ │ │ └── ui/ # Base UI primitives
│ │ ├── hooks/ # Global reusable hooks
│ │ ├── data/ # Static configs/data/constants
│ │ ├── types/ # Global TypeScript types
│ │ └── utils/ # Shared utility functions
│ │
│ └── storage/ # Local storage/repository layer
│
├── supabase/ # Backend & database layer
│ ├── migrations/ # SQL migrations & RPC functions
│ ├── snippets/ # SQL experimentation snippets
│ ├── config.toml # Supabase config
│ └── seed.sql # Seed data
│
├── .github/ # GitHub templates/config
├── .husky/ # Git hooks
│
├── README.md # Project documentation
├── CONTRIBUTING.md # Contribution guide
├── CODE_OF_CONDUCT.md # Community guidelines
├── CHANGELOG.md # Release history
│
├── package.json # Dependencies & scripts
├── vite.config.ts # Vite configuration
├── vitest.config.ts # Vitest configuration
├── eslint.config.ts # ESLint configuration
└── tsconfig.json # TypeScript configuration
To get a local copy up and running, follow these simple steps.
- Node.js (v18.x or later)
- npm
- Docker Desktop (required for local Supabase emulator)
- Supabase CLI
- Clone the repository:
git clone https://github.com/Razen04/GateQuest.git cd GateQuest - Install dependencies:
npm install
- Set up local Supabase instance:
- Start the Supabase services (need Docker installed, read more about it in the guide):
OR
supabase start
npm run supabase:start
- The CLI will output your local Supabase URL, anon key, and service role key.
- Read more about the Supabase Setup in SUPABASE_GUIDE
- Read more about the Supabase Documentation of the project in SUPABASE_DOCS
- Start the Supabase services (need Docker installed, read more about it in the guide):
- Set up environment variables:
- Create a
.envfile in the root directory. - Add your Supabase project URL and anon key:
VITE_SUPABASE_PROJECT_URL=your_supabase_url VITE_SUPABASE_ANON_PUBLIC_KEY=your_supabase_anon_key
- Create a
- Run the development server:
npm run dev
- Run Tests:
npm run test - Build for production:
npm run build
npm run dev: Starts the development server.npm run build: Builds the app for production.npm run lint: Lints the codebase using ESLint.npm run format: Formats the code using Prettier.npm run test: Runs tests using Vitest.npm run supabase:start: Starts the local Supabase Docker container.npm run supabase:stop: Stops the local Supabase Docker container.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Added some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Please read our Contributing Guidelines and Code of Conduct for more information.
Distributed under the MIT License. See LICENSE for more information.











