How 9090856788/portfolio works
Portfolio is a public-facing personal portfolio with a separate owner workspace and REST backend. Visitors browse profile, projects, skills, software, timeline, resume, and contact pages; the owner authenticates to manage those records, messages, and resume versions. The backend routes requests to controllers, which use persistent models and a fallback DataStore; contact messaging can send email, and uploaded profile assets can use Cloudinary. The README only identifies the product, so broader capabilities and wiring are based on the supplied tree and excerpts; client/admin API details and most controller internals were not sampled.
Main entry points: app.js Express API · App.jsx Admin app · userController.js Account controller · messageController.js Message controller
Components 24
Public portfolio
- Portfolio app
client/src/App.jsx - Portfolio pages
client/src/pages - Contact form
client/src/components/ContactForm.jsx - Portfolio API client
client/src/api/portfolioApi.js
Owner workspace
- Admin app
admin/src/App.jsx - Admin authentication
admin/src/components/AdminAuth.jsx - Management pages
admin/src/pages - Resume builder
admin/src/pages/resume/ResumeBuilderPage.jsx - Admin API client
admin/src/api/adminApi.js
REST service
- Express API
server/app.js - User routes
server/router/userRoutes.js - Message routes
server/router/messageRoutes.js - Portfolio routes
server/router
Domain services
- Account controller
server/controller/userController.js - Message controller
server/controller/messageController.js - Resume controller
server/controller/resumeController.js - Content controllers
server/controller - Fallback data store
server/data/store.js - MongoDB models
server/models - Email delivery
server/utils/sendEmail.js - File handling
server/utils/fileHandler.js
Other components
- Portfolio visitor
- Portfolio owner
- Cloudinary
Connections 30
- Portfolio visitor → Portfolio app: opens
- Portfolio app → Portfolio pages: routes to
- Portfolio pages → Portfolio API client: requests data
- Contact form → Portfolio API client: submits inquiry
- Portfolio owner → Admin app: opens
- Admin app → Admin authentication: guards access
- Admin app → Management pages: selects views
- Admin app → Resume builder: selects view
- Admin authentication → Admin API client: uses
- Management pages → Admin API client: uses
- Resume builder → Admin API client: uses
- Portfolio API client → Express API: HTTP requests
- Admin API client → Express API: HTTP requests
- Express API → User routes: dispatches
- Express API → Message routes: dispatches
- Express API → Portfolio routes: dispatches
- User routes → Account controller: dispatches
- Message routes → Message controller: dispatches
- Portfolio routes → Content controllers: dispatches
- Portfolio routes → Resume controller: dispatches
- Account controller → Fallback data store: reads/writes
- Message controller → Fallback data store: reads/writes
- Resume controller → Fallback data store: reads
- Message controller → MongoDB models: reads/writes
- Account controller → MongoDB models: reads/writes
- Resume controller → MongoDB models: uses
- Content controllers → MongoDB models: uses
- Message controller → Email delivery: sends mail
- Account controller → File handling: processes uploads
- File handling → Cloudinary: uploads assets