Portfolio CMS Platform
active · Software Engineering
An active full-stack portfolio and content management platform in this repository, with public project and article pages plus protected administration for structured content.
Problem
A static portfolio makes detailed project, article, timeline, credential, and profile updates dependent on repeated code edits.
Target users
Rishi as the content owner and visitors reviewing projects, articles, experience, education, skills, credentials, and engineering focus areas.
Why it matters
Structured content supports richer project context and consistent updates without embedding every change in page components.
Main features
- Public project and article pages
- Protected administration for portfolio collections
- Tiptap rich-text article editing
- Cloudinary-backed image handling
- SEO metadata and structured public page data
- Responsive React interface
System architecture
The platform separates a React client from an Express API backed by PostgreSQL, while keeping public reading paths distinct from authenticated administration.
Data flow
Admin edits pass through validated Express routes to PostgreSQL or Cloudinary, and public API and document-rendering paths read the stored content for site pages.
Backend architecture
Express exposes collection APIs over PostgreSQL and applies authentication, validation, trusted-origin checks, rate limits, security headers, caching rules, and image handling.
Frontend architecture
React and React Router provide public and protected admin routes, while Tiptap supports rich article editing.
Deployment approach
Cloudinary provides image storage, while deployment planning keeps API, database, environment configuration, and media delivery boundaries explicit.
Security and privacy
The code protects admin routes with cookie-based sessions, trusted-origin checks, Helmet headers, rate limiting, constrained uploads, and output sanitization paths.
Evaluation strategy
The repository defines lint, build, and Vitest workflows for client and server code, with regression coverage focused on public and admin paths.
Engineering challenges
The platform must keep a growing content schema aligned across database models, APIs, admin forms, public pages, metadata, caching, and server-rendered output.
Trade-offs
A custom CMS gives precise control over portfolio content and presentation but adds migration, validation, security, and maintenance responsibilities.
Impact
The platform centralizes portfolio content, publishing, and administration in a structured full-stack system.
Future improvements
Complete content import tooling, extend regression coverage across public and admin paths, and streamline content preview and publishing workflows.