How rakesh-mora/rakesh-portfolio works
This is a database-driven personal portfolio: visitors browse the home page or dedicated project and skills pages, whose sections use portfolio data delivered by a shared API request. The server aggregates collection queries, maps database records to public DTOs, and returns them through API routes. The README documents the UI sections and shared loading behavior; sampled source confirms the aggregate route, context, and project/skill query paths. Other collection-service internals and component wiring are represented only at the documented level.
Main entry points: portfolio.service.ts Portfolio Aggregator · connectDB.ts DB Connection · models Mongoose Models · project.service.ts Project Queries
Components 21
Portfolio UI
- Home Page
app/page.tsx - Projects Page
app/projects/page.tsx - Skills Page
app/skills/page.tsx - Portfolio Sections
app/components - Shared Data Context
app/context/PortfolioDataContext.tsx
API Delivery
- Portfolio API
app/api/portfolio/route.ts - Projects API
app/api/projects/route.ts - Skills API
app/api/skills/route.ts - Certificates API
app/api/certificates/route.ts - Achievements API
app/api/achievements/route.ts - Experience API
app/api/experience/route.ts
Content Queries
- Portfolio Aggregator
lib/services/portfolio.service.ts - Project Queries
lib/services/project.service.ts - Skill Queries
lib/services/skill.service.ts - Certificate Queries
lib/services/certificate.service.ts - Achievement Queries
lib/services/achievement.service.ts - Experience Queries
lib/services/experience.service.ts
Mongo Persistence
- DB Connection
lib/db/connectDB.ts - Mongoose Models
lib/models
Other components
- Visitor
- MongoDB
Connections 30
- Visitor → Home Page: browses
- Visitor → Projects Page: opens
- Visitor → Skills Page: opens
- Home Page → Portfolio Sections: renders
- Projects Page → Portfolio Sections: renders
- Skills Page → Portfolio Sections: renders
- Portfolio Sections → Shared Data Context: reads data
- Shared Data Context → Portfolio API: fetches
- Portfolio API → Portfolio Aggregator: loads
- Projects API → Project Queries: queries
- Skills API → Skill Queries: queries
- Certificates API → Certificate Queries: queries
- Achievements API → Achievement Queries: queries
- Experience API → Experience Queries: queries
- Portfolio Aggregator → Project Queries: loads
- Portfolio Aggregator → Skill Queries: loads
- Portfolio Aggregator → Certificate Queries: loads
- Portfolio Aggregator → Achievement Queries: loads
- Portfolio Aggregator → Experience Queries: loads
- Project Queries → DB Connection: connects
- Skill Queries → DB Connection: connects
- Certificate Queries → DB Connection: connects
- Achievement Queries → DB Connection: connects
- Experience Queries → DB Connection: connects
- Project Queries → Mongoose Models: queries
- Skill Queries → Mongoose Models: queries
- Certificate Queries → Mongoose Models: queries
- Achievement Queries → Mongoose Models: queries
- Experience Queries → Mongoose Models: queries
- DB Connection → MongoDB: connects