DebugZilla is a comprehensive code review tool designed to streamline the process of identifying, analyzing, and resolving issues in software projects. It combines real-time debugging capabilities with advanced AI-powered code analysis to help developers write better, more efficient, and error-free code.
- Features
- Project Structure
- Installation
- Usage
- Scripts
- Technologies Used
- Contributing
- License
- Contact
DebugZilla offers a wide range of features to enhance the debugging and development experience:
- AI-Powered Code Review: Leverage AI to analyze your code for potential issues, security vulnerabilities, and optimization opportunities.
- Grade System: Get a grade for your code based on various metrics like performance, readability, and complexity.
- Complexity Analysis: Get Time Complexity and Space Complexity analysis for your code.
- User Authentication: Secure user registration, login, and profile management.
- Submission Management: Submit, view, and manage code submissions for review.
- Cross-Platform Support: Works seamlessly across different operating systems and environments.
The project is organized into the following directories:
debugzilla/
├── backend/ # Backend server code
│ ├── controllers/ # API controllers
│ ├── db/ # Database connection
│ ├── middlewares/ # Middleware functions
│ ├── models/ # Mongoose models
│ ├── routes/ # API routes
│ ├── app.js # Express app setup
│ └── package.json # Backend scripts and dependencies
├── frontend/ # Frontend client code
│ ├── src/ # React application source
│ ├── public/ # Static assets
│ ├── index.html # HTML entry point
│ ├── vite.config.js # Vite configuration
│ └── package.json # Frontend scripts and dependencies
├── .gitignore # Git ignore file
├── package.json # Workspace root (optional)
└── README.md # Project documentation
To set up DebugZilla on your local machine, follow these steps:
- Node.js (v16 or higher)
- npm or yarn
- MongoDB (for backend database)
- Google Gemini API Key (for AI-powered code analysis)
-
Clone the repository:
git clone https://github.com/yourusername/debugzilla.git cd debugzilla -
Install dependencies:
npm run ia
-
Set up environment variables:
- Create a
.envfile in thebackend/directory with the following variables:MONGODB_URI=<your-mongodb-uri> JWT_SECRET=<your-jwt-secret> PORT=5000 GEMINI_API_KEY=<your-gemini-api-key> CORS_ORIGIN=http://localhost:5173 NODE_ENV=development GITHUB_CLIENT_ID=<your-github-client-id> GITHUB_CLIENT_SECRET=<your-github-client-secret> GOOGLE_CLIENT_ID=<your-google-client-id> GOOGLE_CLIENT_SECRET=<your-google-client-secret> BACKEND_URL=http://localhost:5000 FRONTEND_URL=http://localhost:5173 - Create a
.envfile in thefrontend/directory with the following variable:VITE_API_URL=http://localhost:5000/api
- Create a
-
Start the application:
npm run dev
This will start both the frontend and backend servers concurrently.
-
Access the application: Open your browser and navigate to
http://localhost:5173to start using DebugZilla.
The following scripts are available in the project:
npm run ia: Installs dependencies for both the frontend and backend.npm run dev: Starts both the frontend and backend servers concurrently.npm run frontend: Starts the frontend development server.npm run backend: Starts the backend server.
- React: For building the user interface.
- Redux Toolkit: For state management.
- TailwindCSS: For styling.
- Vite: For fast development and build tooling.
- Axios: For making HTTP requests.
- React Router: For client-side routing.
- Node.js: For server-side JavaScript.
- Express.js: For building the REST API.
- MongoDB: For database storage.
- Mongoose: For object data modeling (ODM).
- JWT: For secure authentication.
- Google Gemini API: For AI-powered code analysis.
We welcome contributions from the community! To contribute:
- Create a personal fork of the project on Github.
- Clone the fork on your local machine.
- Add a new remote to the original repository.
- Create a new branch for your feature or bug fix.
- Make changes to the codebase.
- Commit your changes to the new branch.
- Push your changes to the remote repository.
- Create a new pull request on Github.