Take a deep breath. SpecGenie handles the paperwork.
SpecGenie is an AI-powered web app that turns one-paragraph project ideas into complete, IEEE 830-compliant Software Requirements Specification (SRS) documents — with auto-generated UML diagrams, a refinement chat, and one-click export to PDF, DOCX, or Markdown.
Built for engineering students, by engineering students, for the moment when the deadline is two days away and the SRS hasn't been started yet.
- Idea → SRS in minutes. Paste a paragraph, get the full IEEE 830 document with numbered sections.
- Priority-tagged requirements. Functional and non-functional requirements separated, each with a
REQ-XXXID and HIGH/MED/LOW priority. - Auto UML diagrams. Use Case + Class diagrams generated from the structured requirements, rendered with React Flow (interactive — drag, pan, zoom).
- Refinement chat. Talk to your document. "Make REQ-007 stricter." "Add a security requirement for 2FA." The genie patches the SRS in place.
- Three export formats. PDF for submission, DOCX for track-changes, Markdown for your repo. All built from one canonical source so they don't drift.
- Project history. Every spec saved, searchable, editable.
- Auth + isolation. JWT-based. Your projects are yours alone.
| Layer | Choice |
|---|---|
| Frontend | React 18 + Vite + Tailwind CSS + Framer Motion |
| Diagrams | @xyflow/react (free, MIT) |
| Backend | Node.js + Express + Mongoose |
| LLM | Google Gemini 1.5 Flash (free tier) |
| Orchestration | LangChain-style 4-step prompt pipeline |
| Database | MongoDB (local) |
| Auth | JWT + bcrypt |
| Exports | pdfkit (PDF), docx (DOCX), inline (Markdown) |
📖 Need detailed install steps for MongoDB on Windows? See
COMMANDS.md— it walks through everything from zero.
# 1. Clone
git clone https://github.com/<your-username>/srs-genie.git
cd srs-genie
# 2. Backend
cd server
cp .env.example .env
# → edit .env: set GEMINI_API_KEY (free at https://aistudio.google.com/app/apikey)
# → set JWT_SECRET to any long random string
npm install
npm run dev # starts API on :5000
# 3. Frontend (new terminal)
cd ../client
npm install
npm run dev # starts UI on :5173Open http://localhost:5173. Create an account. Try a project idea.
User raw idea
│
▼
[1] EXTRACT ─► classify into {functional, non-functional, performance, security, ...}
│ ↳ assigns REQ-IDs and priorities
▼
[2] STRUCTURE ─► map into IEEE 830 sections (1.Introduction, 2.Overall Description,
│ 3.System Features, 4.External Interfaces, 5.Other Requirements)
▼
[3] DIAGRAMS ─► emit React Flow JSON for use case + class diagrams
│
▼
[4] PERSIST ─► write Project document to MongoDB → user previews/edits/exports
Each step is its own focused prompt (in server/src/prompts/srsPrompts.js). This gives the LLM a smaller working set per call and produces more consistent JSON than one mega-prompt.
srs-genie/
├── client/ # React + Vite + Tailwind frontend
│ ├── src/
│ │ ├── pages/ # Landing, Login, Signup, Dashboard, Generator, ProjectView
│ │ ├── components/
│ │ │ ├── layout/ # Navbar, BreathMark
│ │ │ ├── auth/ # ProtectedRoute
│ │ │ ├── editor/ # SrsEditor (in-place editing)
│ │ │ ├── chat/ # RefinementChat
│ │ │ ├── diagrams/ # FlowDiagram (React Flow)
│ │ │ └── export/ # ExportMenu
│ │ ├── context/ # AuthContext
│ │ ├── lib/api.js # axios client
│ │ └── styles/globals.css # design tokens + neon utilities
│ ├── tailwind.config.js
│ └── vite.config.js
│
├── server/ # Node + Express backend
│ ├── src/
│ │ ├── routes/ # auth, projects, ai, exports
│ │ ├── models/ # User, Project (Mongoose)
│ │ ├── middleware/auth.js # JWT
│ │ ├── services/
│ │ │ ├── llm/ # Gemini provider (swap for OpenAI/Claude)
│ │ │ ├── srsGenerator.js # 4-step pipeline
│ │ │ └── exporter.js # PDF · DOCX · MD
│ │ ├── prompts/srsPrompts.js
│ │ ├── config/db.js
│ │ └── index.js
│ └── .env.example
│
├── README.md
├── COMMANDS.md # detailed setup, including MongoDB install
├── PROJECT_QA.md # viva + GitHub Q&A
└── .gitignore
| Method | Endpoint | Auth | Purpose |
|---|---|---|---|
| POST | /api/auth/register |
— | Create account |
| POST | /api/auth/login |
— | Sign in |
| GET | /api/auth/me |
✓ | Current user |
| GET | /api/projects |
✓ | List user's projects |
| POST | /api/projects |
✓ | Create empty project |
| GET | /api/projects/:id |
✓ | Fetch one project |
| PATCH | /api/projects/:id |
✓ | Update SRS / title / tags |
| DELETE | /api/projects/:id |
✓ | Delete project |
| POST | /api/ai/generate |
✓ | Run the full 4-step pipeline |
| POST | /api/ai/refine |
✓ | Apply a refinement instruction |
| GET | /api/export/:id/pdf |
✓ | Download PDF |
| GET | /api/export/:id/docx |
✓ | Download DOCX |
| GET | /api/export/:id/md |
✓ | Download Markdown |
Quiet Brutalism — Google minimalism × Tokyo arcade.
Calm at rest. Neon on intent. Inter for UI, JetBrains Mono for accents.
- Dark mode default, light mode toggle.
- Single breathing halo behind the hero.
- 1px borders, neon glow on hover/focus only.
- IEEE 830 section markers (
§1,§2...) sprinkled tastefully. - React Flow nodes with cyan neon edges that pulse with dashed-stroke animation.
The full design preview is in ../DESIGN_MOCKUP.html — open it in a browser.
- OAuth (Google sign-in)
- Real-time collaborative editing (Socket.io)
- GitHub push integration — write the generated
SRS.mddirectly to your repo - Multi-model selector (OpenAI / Claude / Gemini)
- Export Activity + Sequence diagrams alongside Use Case + Class
Software Engineering Lab · 15B17CI573 · JIIT B.Tech VI Sem · 2026
Arjun Awasthi · Pratyaksh · Trish Gupta · Atharva
MIT