Skip to content

Module Recap

Module 07 assembled the complete Bulletin backend. The API is designed, built, and deployed to Railway. This is the halfway point of the course.

A complete REST API for a community board. The Bulletin backend accepts HTTP requests, authenticates users, reads and writes a SQLite database, and returns structured JSON responses.

Seven endpoints across four resources:

EndpointAuthWhat it does
POST /auth/registerCreate account, return JWT
POST /auth/loginVerify credentials, return JWT
GET /postsPaginated post feed with author info
GET /posts/:idSingle post with author info
POST /postsCreate post
DELETE /posts/:idDelete own post
POST /posts/:id/upvoteToggle upvote (atomic transaction)
GET /posts/:id/commentsComment thread
POST /posts/:id/commentsAdd comment
GET /users/:idUser profile with post count

Deployed and running. The API is live on Railway, accessible from anywhere, ready for the React frontend to connect to.

React frontend (not yet built)
↕ HTTP requests
Bulletin API on Railway
├── Express routes + middleware
├── bcrypt + JWT authentication
└── SQLite database

Part 2 of the course covers the frontend. In the next five modules you’ll:

  • Understand the client-server mental model for React developers (Module 08)
  • Store and use JWTs in a React app with Auth Context (Module 09)
  • Build the post feed, create post form, and post detail (Module 10)
  • Add comments, user profiles, upvoting, search, and polish (Module 11)
  • Wire the frontend to the Railway API and deploy to GitHub Pages (Module 12)

Save your Railway API URL — you’ll need it in Module 08:

https://[your-app].up.railway.app

Test it one more time before moving on:

Terminal window
curl https://[your-app].up.railway.app/posts
# Should return an empty array [] initially
  1. Node.js is JavaScript on the server — same language, different environment
  2. Express adds routing and middleware over Node’s raw HTTP module
  3. Middleware pipelines let you compose request handling from small, focused functions
  4. SQLite with better-sqlite3 is synchronous, fast, and simple for learning
  5. bcrypt + JWT is the standard auth pattern for API + SPA applications
  6. Railway deploys Node.js apps from GitHub with minimal configuration

Module 08 — Connecting React to an API →

Module 08 starts Part 2. You’ll scaffold the Bulletin React frontend, understand how React talks to a backend API, install and configure axios, build an API client module, handle loading/error/success states, and set up React Router for the multi-page app.