A full-stack AI-powered idea refinement platform. Capture your ideas, describe them in detail, and let AI surface strengths, weaknesses, next steps, and questions to consider.
Live Demo: https://idea-lab-rho.vercel.app
- Authentication — Register and log in with secure httpOnly cookie-based auth
- Idea Management — Create, view, and delete ideas
- AI Refinement — Describe your idea and get structured AI feedback powered by Gemini Flash
- Version History — Every refinement is saved as an immutable version, navigate back and forth
- Dark / Light Mode — Theme toggle with localStorage persistence
Frontend
- React 19 + TypeScript + Vite
- Tailwind CSS v4 + Shadcn UI
- React Router v6
- Axios + Zod + Sonner
Backend
- Express 5 + TypeScript
- MongoDB + Mongoose
- JWT + bcrypt
- Google Gemini Flash (
@google/genai)
IdeaLab/
├── client/ # React frontend
│ └── src/
│ ├── components/
│ ├── pages/
│ ├── services/
│ ├── context/
│ ├── hooks/
│ └── types/
├── server/ # Express backend
│ └── src/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── middleware/
│ ├── config/
│ └── types/
└── package.json # Root with concurrently dev script
- Node.js 18+
- MongoDB Atlas account
- Google Gemini API key
- Clone the repository
git clone https://github.com/dhruvdeepChakravorty/IdeaLab.git
cd IdeaLab- Install all dependencies
npm install
cd client && npm install
cd ../server && npm install- Set up environment variables
Create server/.env:
MONGODB_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
GEMINI_API_KEY=your_gemini_api_key
CLIENT_URL=http://localhost:5173
PORT=3000Create client/.env:
VITE_API_URL=http://localhost:3000/api- Run the development server
npm run devThis starts both frontend (port 5173) and backend (port 3000) concurrently.
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/register |
Register a new user |
| POST | /api/auth/login |
Log in |
| POST | /api/auth/logout |
Log out |
| GET | /api/auth/me |
Get current user |
| GET | /api/ideas |
Get all ideas |
| POST | /api/ideas |
Create an idea |
| GET | /api/ideas/:id |
Get idea by ID |
| DELETE | /api/ideas/:id |
Delete an idea |
| GET | /api/ideas/:ideaId/versions |
Get all versions for an idea |
| POST | /api/ideas/:ideaId/versions |
Create a new version |
| GET | /api/ideas/:ideaId/versions/latest |
Get latest version |
- Frontend — Vercel
- Backend — Render
- Database — MongoDB Atlas