How ziakn/portfolio-new works
This is a personal software-engineering portfolio and publishing site. Visitors browse the profile, resume, projects, and technical blog; they can also submit a contact message. An admin area supports sign-in and management of posts, projects, site content, and messages. The sampled code confirms blog reads, home-content reads, contact submission handling, and session lookup; wiring for other admin and portfolio data operations is inferred only where the file tree identifies the subsystem, so uncertain links are omitted.
Main entry points: posts.ts Post access and CRUD · db.ts SQLite database · content.ts Site content · page.tsx Blog listing
Components 24
Public site
- Profile home
src/app/(site)/page.tsx - Resume
src/app/(site)/resume/page.tsx - Portfolio
src/app/(site)/portfolio/page.tsx - Project filtering
src/app/(site)/portfolio/PortfolioClient.tsx - Contact endpoint
src/app/api/contact/route.ts
Blog publishing
- Blog listing
src/app/blog/page.tsx - Post list UI
src/components/BlogPostList.tsx - Blog article
src/app/blog/[slug]/page.tsx - RSS feed
src/app/feed.xml/route.ts
Administration
- Admin login
src/app/admin/login/page.tsx - Admin panel
src/app/admin/(panel)/page.tsx - Post management
src/app/admin/(panel)/posts/actions.ts - Project management
src/app/admin/(panel)/projects/actions.ts - Content editor
src/app/admin/(panel)/content/actions.ts - Message management
src/app/admin/(panel)/messages/actions.ts - Session checks
src/lib/session.ts
Data services
- Site content
src/data/content.ts - Post access and CRUD
src/data/posts.ts - Project data
src/data/projects.ts - Contact records
src/data/contact.ts - Admin accounts
src/data/admin.ts - SQLite database
src/data/db.ts
Other components
- Visitor
- Administrator
Connections 26
- Visitor → Profile home: visits
- Visitor → Resume: views
- Visitor → Portfolio: views
- Visitor → Blog listing: browses
- Visitor → Blog article: opens
- Visitor → Contact endpoint: submits
- Profile home → Site content: reads content
- Resume → Site content: reads achievements
- Portfolio → Project filtering: renders
- Blog listing → Post access and CRUD: loads posts
- Blog listing → Post list UI: renders
- Blog article → Post access and CRUD: loads article
- RSS feed → Post access and CRUD: loads recent posts
- Contact endpoint → Contact records: stores submission
- Administrator → Admin login: signs in
- Administrator → Admin panel: manages site
- Session checks → Admin accounts: resolves user
- Post management → Post access and CRUD: manages posts
- Project management → Project data: manages projects
- Content editor → Site content: manages content
- Message management → Contact records: manages messages
- Post access and CRUD → SQLite database: reads and writes
- Contact records → SQLite database: reads and writes
- Admin accounts → SQLite database: reads and writes
- Project data → SQLite database: reads and writes
- Site content → SQLite database: reads and writes