How tandah-marcelle/portfolio works
This repository contains a portfolio site with a public portfolio view and a Next.js-backed admin/CMS for maintaining its content. The principal workflow is an administrator authenticating, editing portfolio records and uploading media; public visitors view portfolio content assembled from stored records. The tree also contains a separate Vite/React portfolio implementation. Source excerpts confirm selected API-to-database and upload operations, but not frontend fetching or the wiring of unsampled routes, so those links are omitted. The README is empty.
Main entry points: admin Content API Routes · auth Auth Routes · db.ts Portfolio Database · page.tsx Next Home
Components 17
Public Portfolio
- Next Home
nextjs/app/page.tsx - Portfolio Sections
nextjs/components/sections - Vite App
src/App.tsx - Vite Home
src/views/HomePage.tsx - Vite Sections
src/components/sections
Admin CMS
- Admin Dashboard
nextjs/app/admin/page.tsx - Login Page
nextjs/app/login/page.tsx
API and Auth
- Portfolio API
nextjs/app/api/portfolio/route.ts - Content API Routes
nextjs/app/api/admin - Auth Routes
nextjs/app/api/auth - Route Helpers
nextjs/lib/route-helpers.ts - Session Auth
nextjs/lib/auth.ts
Data and Media
- Portfolio Database
nextjs/lib/db.ts - Cloudinary Uploads
nextjs/lib/cloudinary.ts
Other components
- Visitor
- Administrator
- Cloudinary
Connections 16
- Visitor → Next Home: opens
- Next Home → Portfolio Sections: renders
- Visitor → Vite App: opens
- Vite App → Vite Home: renders
- Vite Home → Vite Sections: renders
- Administrator → Login Page: signs in
- Administrator → Admin Dashboard: manages content
- Admin Dashboard → Content API Routes: submits edits
- Login Page → Auth Routes: authenticates
- Content API Routes → Route Helpers: checks access
- Content API Routes → Portfolio Database: writes records
- Content API Routes → Cloudinary Uploads: uploads media
- Cloudinary Uploads → Cloudinary: stores media
- Auth Routes → Portfolio Database: looks up admin
- Auth Routes → Session Auth: creates session
- Portfolio API → Portfolio Database: reads records