Skip to content

Repository files navigation

JEE Challenger

License

A comprehensive one-stop platform for all your JEE preparation needs, featuring AI-powered tutoring, study materials, official papers, and more.

Table of Contents

Features

🎯 Core Features

  • AI Tutor: Personalized JEE preparation assistance powered by NextAuth authentication and MongoDB-backed chat history
  • Syllabus Tracker: Track your JEE preparation progress across all subjects with chapter-wise completion tracking
  • Study Materials: Comprehensive resources including interactive Formula Sheets, Universal Unit Converters, a Periodic Table Explorer, and reference books for Physics, Chemistry, and Mathematics
  • Official Papers: Direct access to JEE Main and Advanced official papers and answer keys
  • Chapter-wise PYQs: Solved previous year questions organized by chapters
  • Blog & Articles: Expert JEE preparation tips, strategies, and study guides with search and filtering
  • Real-time News: Latest JEE-related news and updates powered by GNews API
  • Contact Form: Email integration for user queries and feedback

🎨 User Experience

  • Modern and responsive UI built with Next.js and Tailwind CSS
  • Dark/Light theme support with system preference detection
  • Mobile-first design approach
  • Smooth animations and hover effects
  • SEO optimized with automatic sitemap generation

πŸ“š Study Resources

  • Interactive Formula Sheets: Dynamic, chapter-wise formulas rendered with KaTeX for quick revision
  • Universal Unit Converters: High-precision, interactive tools to instantly convert complex derived units across Physics, Chemistry, and Mathematics
  • Periodic Table Explorer: Interactive periodic table featuring s/p/d/f block highlights (fully aligned with NCERT/JEE syllabus standards), properties trends heatmaps (electronegativity, ionization energy, atomic mass, melting point), STP state of matter filters, responsive mobile list views, and high-yield inorganic chemistry study notes.
  • Physics Resources: Complete study materials and reference books
  • Chemistry Resources: Comprehensive chemistry study guides
  • Mathematics Resources: Extensive math preparation materials
  • Additional Platforms: Integration with Unacademy, Physics Wallah, and Apni Kaksha

πŸ‘¨β€πŸ« AI Tutor

  • Authentication via NextAuth.js (Google OAuth)
  • File upload and attachment support
  • Markdown and LaTeX rendering for mathematical expressions
  • Chat history persistence backed by MongoDB
  • Real-time message streaming

πŸ“Š Syllabus Tracker

  • Progress tracking for Physics, Chemistry, and Mathematics
  • Chapter-wise completion tracking for Theory, PYQs, and Revision
  • Visual progress indicators and statistics
  • Cloud Sync: Securely backup and sync your progress across multiple devices (MongoDB backed)
  • Smart Merge Conflict Resolution: Intuitive UI to merge or choose between browser and cloud data
  • Export progress as an image with html-to-image
  • Import/export progress data manually via JSON
  • Local storage persistence with automatic cross-tab synchronization
  • Motivation-driven progress visualization
  • Subject-wise progress overview

πŸ“° News & Updates

  • Real-time JEE news from GNews API
  • Categorized news cards
  • Automatic content refresh
  • Mobile-responsive news layout

πŸ“ Blog & Articles

  • Expert preparation tips and strategies
  • Subject-wise study guides and book recommendations
  • Time management and common mistakes advice
  • MDX-based article system with frontmatter metadata
  • Search and category filtering
  • Featured article highlighting
  • Reading progress tracking with table of contents
  • Social sharing integration
  • SEO optimized with structured data

πŸ”— Platform Integrations

  • Unacademy: Direct links to Unacademy JEE courses
  • Physics Wallah: Access to PW study materials
  • Apni Kaksha: Additional study resources

Technologies Used

Frontend

  • Framework: Next.js 16 with App Router
  • UI Library: React 19
  • Styling: Tailwind CSS with custom animations and tailwind-scrollbar for tailored component scrollbars
  • Icons: Lucide React & React Icons
  • Theme Management: @teispace/next-themes
  • Floating UI: @floating-ui/react for tooltips and popovers
  • Markdown Rendering: React Markdown with remark-gfm for GitHub Flavored Markdown
  • Math Rendering: KaTeX with rehype-katex and remark-math for mathematical expression parsing and rendering
  • Heading Anchors: rehype-slug for blog table of contents
  • Content Management: gray-matter for MDX frontmatter parsing
  • Image Export: html-to-image for exporting the Syllabus Tracker
  • Auto-resize Textarea: react-textarea-autosize for the AI Tutor chat input

Backend & APIs

  • Authentication: NextAuth.js v4 with Google OAuth provider
  • Databases (Microservice Architecture):
    • jee_challenger_auth: User sessions and authentication
    • jee_challenger_ai: AI Tutor chat history
    • jee_challenger_syllabus_tracker: Cloud synced syllabus progress
  • Caching / Rate Limiting: Upstash Redis
  • Token Handling: jsonwebtoken (JWT)
  • Email Service: Nodemailer for contact form
  • News API: GNews API for real-time updates
  • API Routes: Next.js API routes

Development & Deployment

  • Build Tool: Turbopack for faster development
  • SEO: next-sitemap for automatic sitemap generation
  • Analytics: @next/third-parties for Google Analytics integration
  • Ad Integration: Google AdSense support
  • Performance: Image optimization, caching headers, and production webpack chunk splitting
  • Deployment: Vercel

Getting Started

  1. Clone the repository:
git clone https://github.com/Samya-S/jeechallenger-app.git
cd jeechallenger-app
  1. Install dependencies:
npm install
  1. Create a .env.local file in the root directory and add your environment variables:
# Email Configuration (for Contact form)
AUTH_EMAIL=your-email@example.com
AUTH_PASS=your-email-app-password
SENDER_EMAIL=your-email@example.com
RECEIVER_EMAIL=recipient@example.com

# GNews API Configuration
GNEWS_API_KEY=your-gnews-api-key

# Google OAuth Configuration (for NextAuth)
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret

# NextAuth Configuration
NEXTAUTH_SECRET=your-nextauth-secret
NEXTAUTH_URL=http://localhost:3000

# MongoDB Configuration (for auth adapter and chat history)
MONGODB_URI=your-mongodb-connection-string

# Upstash Redis Configuration (for rate limiting / caching)
UPSTASH_REDIS_REST_URL=your-upstash-redis-url
UPSTASH_REDIS_REST_TOKEN=your-upstash-redis-token

# JWT Configuration
JWT_SECRET=your-jwt-secret

# AI Tutor Backend (for production)
# The app uses API rewrites to connect to the AI tutor backend
  1. Run the development server:
npm run dev
  1. Open http://localhost:3000 in your browser to see the result.

Building for Production

npm run build
npm start

Project Structure

jeechallenger-app/
β”œβ”€β”€ app/                        # Next.js App Router pages
β”‚   β”œβ”€β”€ ai-tutor/               # AI Tutor functionality
β”‚   β”‚   └── components/         # AI Tutor specific components
β”‚   β”œβ”€β”€ syllabus-tracker/       # Progress tracking system
β”‚   β”œβ”€β”€ blog/                   # Blog post display with dynamic routes
β”‚   β”‚   β”œβ”€β”€ [slug]/             # Dynamic blog post pages
β”‚   β”‚   β”œβ”€β”€ components/         # Blog UI components (TOC, Share, etc.)
β”‚   β”‚   └── hooks/              # Blog custom hooks
β”‚   β”œβ”€β”€ blogs/                  # Blog listing page with search/filter
β”‚   β”œβ”€β”€ materials/              # Study materials
β”‚   β”‚   β”œβ”€β”€ physics/            # Physics resources
β”‚   β”‚   β”‚   └── unit-converter/ # Physics unit converter tool
β”‚   β”‚   β”œβ”€β”€ chemistry/          # Chemistry resources
β”‚   β”‚   β”‚   β”œβ”€β”€ unit-converter/ # Chemistry unit converter tool
β”‚   β”‚   β”‚   └── periodic-table/ # Interactive Periodic Table explorer tool
β”‚   β”‚   β”œβ”€β”€ mathematics/        # Mathematics resources
β”‚   β”‚   β”‚   └── unit-converter/ # Mathematics unit converter tool
β”‚   β”‚   └── chapterwise-solved-pyqs/  # PYQs by chapter
β”‚   β”œβ”€β”€ more-platforms/         # External platform links
β”‚   β”œβ”€β”€ news/                   # Latest JEE news section
β”‚   β”œβ”€β”€ official-links/         # JEE official papers
β”‚   β”œβ”€β”€ login/                  # Login functionality
β”‚   β”œβ”€β”€ contact-us/             # Contact form
β”‚   β”œβ”€β”€ profile/                # User profile dashboard
β”‚   β”œβ”€β”€ donate/                 # Support & Donations
β”‚   β”œβ”€β”€ privacy-policy/         # Global Privacy Policy
β”‚   └── terms-of-service/       # Global Terms of Service
β”œβ”€β”€ components/                 # Reusable React components
β”‚   β”œβ”€β”€ ui/                     # UI components (e.g. BlogCard)
β”‚   β”œβ”€β”€ common/                 # Shared components
β”‚   β”œβ”€β”€ materials/              # Study materials components
β”‚   └── providers/              # Context providers
β”œβ”€β”€ config/                     # Configuration files
β”œβ”€β”€ data/                       # Content data
β”‚   β”œβ”€β”€ blogs/                  # MDX blog articles
β”‚   β”œβ”€β”€ faq-data.js             # General FAQ data
β”‚   β”œβ”€β”€ syllabus-data.js        # Syllabus Tracker data
β”‚   └── materials/              # Resources, Formula, Unit Conversion, and Periodic Table data
β”‚       β”œβ”€β”€ physics-formula-data.js
β”‚       β”œβ”€β”€ chemistry-formula-data.js
β”‚       β”œβ”€β”€ mathematics-formula-data.js
β”‚       β”œβ”€β”€ physics-resources.js
β”‚       β”œβ”€β”€ chemistry-resources.js
β”‚       β”œβ”€β”€ mathematics-resources.js
β”‚       β”œβ”€β”€ unit-conversion-data.js
β”‚       β”œβ”€β”€ periodic-table-explorer-constants.js
β”‚       └── periodic-table-data.js
β”œβ”€β”€ docs/                       # Documentation
β”‚   β”œβ”€β”€ blog-structure.md       # Blog system documentation
β”‚   └── color-system.md         # Design system colors
β”œβ”€β”€ utils/                      # Utility functions
β”œβ”€β”€ server/                     # Server actions
└── public/                     # Static assets

All versions

jeechallenger v2.0

Upgraded the vanilla JavaScript project to a modern Next.js application with many more features.

Note

This is a major update and is managed in this repository.

jeechallenger v1.2

This is version 1.2, made using HTML, CSS and vanilla JavaScript. The code is available at Samya-S/jeechallenger-v1.2 (archived).

jeechallenger v1.1

This version includes PHP. The code is available at Samya-S/jeechallenger-v1.1 (archived).

jeechallenger v1.0

This version is made using HTML, CSS and vanilla JavaScript. The code is available at Samya-S/jeechallenger-v1.0 (archived).

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Development Guidelines

  • Follow the existing code structure and naming conventions
  • Ensure responsive design for all new components
  • Add proper TypeScript types if applicable
  • Test on both light and dark themes
  • Update documentation for new features

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Join our community:

If you find this project helpful and would like to support its development, consider becoming a sponsor. Your support helps maintain and improve the project.

Sponsor

About

JEE Challenger is a one-stop platform for all your JEE preparation needs, featuring books, notes, and other study materials

Topics

Resources

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages