Work / The Cinematic Almanac

The Cinematic Almanac

Full-stack single-page web application for exploring curated cinema content across multiple languages with responsive design and user authentication.

Duration Jan 2023 - May 2023
Role Full-Stack Engineer
Team 2-person team
Status Complete (Com S 319)
React Node.js MongoDB REST API Bootstrap

The Concept

A centralized platform for exploring curated cinema from multiple cultures and languages. Users can browse movies, view detailed information, watch trailers, and interact with a catalog maintained by admin users. Demonstrates full-stack web development with MERN stack.

Your Role

Frontend Development (React)

Built responsive single-page application using React and Bootstrap. Dynamic movie cards, search functionality, trailer playback, and interactive UI components. Mobile-first design.

Backend API (Node.js & Express)

Designed and implemented RESTful API endpoints: GET /movies, POST /ratings, DELETE /reviews. Proper HTTP semantics, error handling, and validation.

Database Design (MongoDB)

Modeled collections for movies, users, ratings, reviews. Separate collections per language. Proper indexing for fast queries.

Authentication & Authorization

Implemented JWT-based authentication. Role-based access control for admin users. Secure password handling.

System Architecture

Three-tier MERN architecture: React frontend → Express API → MongoDB database. Clean separation of concerns.

Frontend

React SPA

  • Movie browse/search
  • Detail pages
  • Ratings & reviews
  • User authentication UI

API

Express.js

  • GET/POST/PUT/DELETE endpoints
  • JWT authentication
  • Input validation
  • Error handling

Database

MongoDB

  • Movies collection
  • Users collection
  • Ratings & reviews
  • Multi-language support

Key Technical Decisions

1. React for Frontend

Component-based architecture aligns with UI modularity. State management enables responsive interactions.

  • Why React: Declarative, component reusability, efficient rendering
  • Benefit: Easy to add features without rewriting code

2. MongoDB for Flexibility

Movie data is semi-structured. Fields vary across languages. MongoDB's flexible schema is a good fit.

  • Schema flexibility: Add fields without migration
  • Language support: Separate collections per language, shared movie IDs

3. JWT Authentication

Stateless authentication suitable for REST APIs and single-page applications.

  • Benefit: Scales horizontally, no session store needed
  • Security: Tokens signed and verified server-side

4. Bootstrap for Styling

Rapid UI development without custom CSS. Responsive grid system.

  • Speed: Pre-built components (cards, modals, forms)
  • Responsive: Mobile-friendly by default

Results

500+
Movies in Database

Across 4+ languages

10+
API Endpoints

Fully tested and documented

100%
Responsive Design

Mobile to desktop

A+
Final Grade

Com S 319 Course Project

What I Learned

1. Full-Stack Development is About Integration

Components work individually, but integration challenges emerge at boundaries. Learned to debug API-database mismatches, frontend-API contract changes.

2. API Design Matters

Small API design choices cascade to frontend complexity. Consistent naming, proper HTTP methods, sensible error responses make client code elegant.

3. User Experience Details Win

Loading states, error messages, responsive behavior—these polish matter. A feature isn't done until it feels good to use.

4. Database Schema Evolution is Hard

Once users add data, schema changes are expensive. Spent time upfront on data modeling to avoid painful migrations later.

Let's talk

Interested in full-stack development, web architecture, or UX? Let's connect.