CodeRefine is a full-stack application that helps developers and students improve their code quality using Generative AI.
It provides automated code review, optimization suggestions, complexity analysis, and stores full submission history for each user.
This project is built using Node.js + Express for backend, Supabase PostgreSQL for database, Supabase Auth for authentication, and Gemini LLM for AI-powered code analysis.
- Supabase Authentication (Secure Login/Signup)
- Submit code for review and optimization
- AI-generated bug detection and best practices suggestions
- Time & Space Complexity Analysis
- AI-generated optimized code output
- User Project Management (Organize submissions into projects)
- Submission History Tracking
- AI Trace Logs stored for transparency
- Dashboard Stats (Total submissions, projects, most used language)
- Secure Database with Row Level Security (RLS)
- Node.js
- Express.js
- Supabase PostgreSQL
- Supabase Auth
- Gemini LLM API
- dotenv
- CORS
- PostgreSQL (Supabase)
- JSONB storage for AI output
The database consists of 7 main tables:
usersprojectscode_submissionsreview_resultsoptimization_resultsai_review_logsuser_activity
Each user has their own isolated data access using Supabase RLS policies.
- User signs up / logs in using Supabase Auth
- Frontend receives a JWT access token
- Token is sent in backend API requests as:
Authorization: Bearer
- Backend verifies token using Supabase
- Code submission is stored in PostgreSQL
- Backend sends code to Gemini LLM for analysis
- AI output is stored in database:
- review results
- optimized code
- AI logs
- User can view complete history anytime
coderefine-backend/
│── src/
│ ├── config/
│ │ ├── supabaseClient.js
│ │ └── geminiClient.js
│ ├── controllers/
│ │ ├── aiController.js
│ │ ├── dashboardController.js
│ │ ├── historyController.js
│ │ ├── projectController.js
│ │ └── submissionController.js
│ ├── middleware/
│ │ └── authMiddleware.js
│ ├── routes/
│ │ ├── aiRoutes.js
│ │ ├── dashboardRoutes.js
│ │ ├── historyRoutes.js
│ │ ├── projectRoutes.js
│ │ └── submissionRoutes.js
│ ├── utils/
│ │ ├── activityLogger.js
│ │ └── jsonCleaner.js
│ └── server.js
│── package.json
│── package-lock.json
│── .env (ignored)
---
## 📸 Database Schema

## 🔗 API Endpoints
### Projects
- `POST /api/projects/create`
- `GET /api/projects`
### Submissions
- `POST /api/submissions/create`
- `GET /api/submissions`
- `GET /api/submissions/:id`
- `DELETE /api/submissions/:id`
### AI Analysis
- `POST /api/ai/analyze`
### History
- `GET /api/history`
### Dashboard
- `GET /api/dashboard/stats`