CodeGym AI is a web application built with Next.js that helps you practice your coding skills. It leverages generative AI to provide a dynamic and interactive learning experience, complete with on-the-fly problem generation, code evaluation, quality analysis, and an assistant chatbot to help you when you're stuck.
This project was bootstrapped with Firebase Studio.
- AI-Powered Problem Generation: Select a topic, programming language (Java, Python, C), and complexity level to get a unique coding challenge.
- Interactive Code Editor: A simple, clean editor to write and test your solutions.
- Instant Code Execution: Run your code against the problem's expected output and get immediate feedback on its correctness.
- Code Quality Analysis: Get AI-driven feedback on your code's quality, focusing on aspects like readability and best practices.
- Conversational Chatbot: Stuck on a problem? Ask the integrated AI chatbot for hints, clarifications, or guidance.
- Responsive Design: A clean, modern UI that works across different screen sizes.
- Framework: Next.js (with App Router)
- AI Integration: Google's Gemini via Genkit
- UI: React, TypeScript, Tailwind CSS
- Component Library: shadcn/ui
- Hosting: Pre-configured for Firebase App Hosting
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
-
Clone the repository:
git clone https://github.com/Jassu78/CodeGym-AI.git cd CodeGym-AI -
Install dependencies:
npm install
-
Set up environment variables: Create a
.envfile in the root of your project by copying the example file:cp .env.example .env
Open the
.envfile and add your Google Gemini API key:GEMINI_API_KEY=__YOUR_API_KEY__You can obtain a key from the Google AI Studio.
-
Run the development server:
npm run dev
The application should now be running at http://localhost:9002.
npm run dev: Starts the Next.js development server.npm run build: Builds the application for production.npm run start: Starts a production server.npm run lint: Lints the project files using Next.js's built-in ESLint configuration.