Skip to content
JR Joey Rodriguez
← All work

Full-stack case study

Visitor Registry (MEAN)

A compact full-stack app built on the MEAN stack — an Angular front end served by an Express + MongoDB API on a single origin — with full create/read/update/delete on a list of visitors and their feedback.

Role
Full-stack — design & build, solo
Front end
Angular 19, TypeScript
Back end
Express, MongoDB, Mongoose
Context
Harvard Extension — Web App Dev

Public demo — sample data resets periodically, and the free server may take ~30–50s to wake on first load.

Angular visitor list — names and feedback with edit/delete actions Add Visitor form — entering a name and feedback
The Angular client — the visitor list and the add/edit form, talking to the Express API.

What it is

A visitor registry where you add a visitor with a bit of feedback, see everyone in a list, and edit or remove entries. It's small on purpose — the point was to practice a clean, end-to-end Angular + Express + MongoDB build, the Angular counterpart to my React/MERN checklist app.

How it's built

It's a monolith: the Express server builds and serves the compiled Angular app and exposes the REST API under /api, so the whole thing runs on one origin — no CORS, no separate front-end host.

Angular client

Angular 19 SPA · list + add/edit views · HttpClient → /api · router

Express API

REST /api/visitors · routes → services → model · serves the Angular build

MongoDB

Mongoose Visitor model · name + feedback

Request flow: Angular HttpClient → /api/visitors → Express route → service → Mongoose → MongoDB, and back.

Stack

Front end

  • Angular 19
  • TypeScript
  • RxJS
  • Angular Router
  • HttpClient

Back end

  • Node.js
  • Express
  • MongoDB
  • Mongoose

Honest context

This began as coursework for my Harvard Extension Web Application Development micro-certificate. I include it to round out the stack story — Angular alongside React — and because it's real, working, full-stack code I designed and deployed solo (Render + MongoDB Atlas). Natural next steps would be form validation, pagination, and tests.