- ๐ Live Project: Coming Soon
- ๐ป GitHub Repository: https://github.com/devisingh2007/caia_system_design_devisingh_rajput
- postman url : https://devisingh-rajput.docs.buildwithfern.com/caia-backend-api/introduction
- ๐ Dataset (Google Drive): https://drive.google.com/file/d/1um-ZWp-i2SnDgYC1kOV2BOPcYhzInejV/view?usp=sharing
- ๐ Assignment Repo: https://github.com/codinggita/CGxSU_Semester_1/tree/main/assignments/05.sem2_full_stack_80_Marks_Project_02
CAIA System Design Knowledge Base is a full-stack application designed to provide a centralized platform for learning, exploring, and analyzing system design concepts.
The system is built using a real-world dataset of system design prompts and detailed responses, enabling users to search, filter, and interact with high-quality architecture knowledge in a structured way.
- Build a scalable RESTful API system
- Design schema based on real dataset structure
- Implement advanced search & filtering
- Provide analytics & trending insights
- Enable user personalization (bookmarks, notes)
- Follow clean architecture & PR practices
System design preparation is often scattered across multiple platforms with:
- โ No centralized knowledge base
- โ Poor search and filtering
- โ No structured categorization
- โ No tracking of important concepts
This project solves the problem by creating a structured knowledge base system where users can:
- Browse system design prompts
- Read detailed explanations
- Filter by category, concept, and type
- Search across prompts and responses
- Track trending and popular topics
- Bookmark and save important content
The application is built on a structured JSON dataset:
{
"prompt": "System design question",
"response": "Detailed explanation",
"metadata": {
"category": "Foundations",
"subcategory": "Scalability",
"concept": "Horizontal vs vertical scaling",
"question_type": "design",
"generated_at": "2025-08-20T17:49:57.932316"
}
}The schema is designed directly based on dataset analysis:
{
prompt: String,
response: String,
metadata: {
category: String,
subcategory: String,
concept: String,
question_type: String,
generated_at: Date
},
views: Number,
bookmarks: Number,
isArchived: Boolean
}- Used
promptinstead oftitle - Stored full explanation in
response - Nested
metadatafor structured filtering - Added
views,bookmarksfor analytics - Used indexing for fast search
The project follows a modular layered architecture:
- Frontend (React) โ UI & user interaction
- Backend (Express) โ API handling
- Database (MongoDB) โ Data storage
- Middleware Layer โ Auth, logging, validation
- CRUD operations for concepts
- Advanced search (prompt, response)
- Filtering (category, concept, question type)
- Pagination & sorting
- Authentication (JWT)
- Bookmark concepts
- Add personal notes
- Vote on concepts
- Trending concepts
- Most viewed topics
- Category distribution
- Related concepts
- Daily system design challenges
- Personalized recommendations
- GET
/api/v1/concepts - GET
/api/v1/concepts/:id - POST
/api/v1/concepts - DELETE
/api/v1/concepts/:id
- GET
/api/v1/search?q=keyword - GET
/api/v1/search/title?q=keyword
- GET
/api/v1/analytics/trending - GET
/api/v1/analytics/views/top
- POST
/api/v1/auth/register - POST
/api/v1/auth/login
- Node.js
- Express.js
- MongoDB (Mongoose)
- React.js
- Tailwind CSS
- JWT (JSON Web Tokens)
caia_system_design/
โ
โโโ backend/
โ โโโ index.js # Entry point (loads src/app.js)
โโโ src/
โ โโโ app.js # Express app setup & middleware
โ โโโ config/ # Configuration files (db.js, env.js)
โ โโโ controllers/ # Route handlers for each feature
โ โโโ middlewares/ # Custom middleware (auth, error handling, logging)
โ โโโ models/ # Mongoose schemas (User, Concept, Note, etc.)
โ โโโ routes/ # API route definitions
โ โโโ scripts/ # Utility scripts (seed.js, etc.)
โ โโโ utils/ # Helper functions (response, pagination, etc.)
โโโ package.json
โโโ .env # Environment variables (create from .env.example)
โโโ README.md
git clone whttps://github.com/mann2007-ptl/caia_system_design_mann_patel.gitcd backend
npm installCreate .env file:
PORT=5000
MONGO_URI=your_mongodb_uri
JWT_SECRET=your_secret_keynpm run devThe dataset is imported using:
insertMany()for bulk insertion- JSON parsing and transformation
- Metadata mapping to schema
- API testing using Postman
- CRUD validation
- Search & filter testing
- Error handling verification
- Indexed fields for fast search
- Pagination for large datasets
- Optimized MongoDB queries
- Efficient filtering logic
- Mapping complex dataset to schema
- Designing scalable API structure
- Implementing efficient search queries
- Handling nested metadata filtering
- AI-based summarization
- Voice search
- Graph-based concept visualization
- Recommendation engine
This project is part of an academic assignment. External contributions are not open.
Educational use only.
Your Name GitHub: https://github.com/devisingh2007
This project is developed as part of the CGxSU Full Stack Assignment to demonstrate real-world system design and backend architecture skills.