BuddyBuild is a high-performance, AI-driven platform designed to streamline code reviews and development workflows. Leveraging the power of Google's Gemini AI, background processing with BullMQ, and a modern React frontend, BuddyBuild provides developers with real-time insights and automated feedback.
- 🤖 AI-Powered Code Reviews: Integrated with Google Gemini AI to provide intelligent feedback on code snippets.
- ⚡ Real-time Editor: A professional-grade code editing experience powered by Monaco Editor.
- 🔄 Background Processing: Robust task management using Redis and BullMQ for asynchronous operations.
- 🔐 Secure Authentication: Google OAuth 2.0 integration via Passport.js and JWT-based session management.
- 📊 Usage Tracking: Monitor AI usage and review history.
- 🎨 Modern UI: Beautiful, responsive interface built with Tailwind CSS 4 and Motion for smooth animations.
- Framework: React 19
- Build Tool: Vite
- Styling: Tailwind CSS 4
- State Management: TanStack Query (React Query)
- Editor: Monaco Editor
- Animations: Motion (Framer Motion)
- Icons: Lucide React
- Runtime: Node.js
- Language: TypeScript
- Framework: Express 5
- Database: PostgreSQL
- Cache/Queue: Redis & BullMQ
- AI: Google Generative AI (Gemini)
- Auth: Passport.js & JSON Web Tokens
BuddyBuild/
├── backend/ # Node.js API
│ ├── src/
│ │ ├── ai/ # AI processing logic
│ │ ├── modules/ # Domain modules (auth, reviews, usage)
│ │ ├── queues/ # BullMQ queue definitions
│ │ ├── scripts/ # Database initialization and seeding
│ │ ├── server.ts # Entry point
│ │ └── ...
│ └── package.json
├── frontend/ # React application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Main logical pages (Landing, Editor, Login)
│ │ ├── hooks/ # Custom React hooks
│ │ ├── api/ # Axios instance and API calls
│ │ └── App.tsx # Main router and layout
│ └── package.json
└── readme.md # You are here
- Node.js (v18+)
- PostgreSQL
- Redis
-
Clone the repository:
git clone <repository-url> cd BuddyBuild
-
Setup Backend:
cd backend npm install -
Setup Frontend:
cd ../frontend npm install
Create a .env file in the backend/ directory with the following variables:
# Server
PORT=3000
NODE_ENV=development
# Database
DATABASE_URL=postgresql://user:password@localhost:5432/buddybuild
# Redis
REDIS_URL=redis://127.0.0.1:6379
# AI
GEMINI_API_KEY=your_gemini_api_key
# Auth
JWT_SECRET=your_jwt_secret
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
CLIENT_URL=http://localhost:5173Start Backend (Development):
cd backend
npm run devStart Frontend:
cd frontend
npm run devnpm run dev: Starts the development server withts-node.npm run build: Compiles TypeScript to JavaScript.npm run start: Runs the compiled server fromdist/.npm run db:init: Initializes the database schema.npm run db:seed: Seeds the database with initial data.
npm run dev: Starts the Vite development server.npm run build: Builds the production-ready application.npm run preview: Previews the production build locally.
This project is licensed under the MIT License.