Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chapter Member Directory API

A REST API for managing chapter members built with Node.js and Express.

What It Does

  • Add, view, update, and delete chapter members
  • Track member info: name, email, major, role, and points
  • Data persists to a local JSON file between server restarts
  • Input validation with proper HTTP error codes

Tech Stack

  • Node.js — runtime
  • Express — web framework
  • JSON file storage — no database, pure file persistence
  • crypto.randomUUID() — built-in unique ID generation

How to Run

npm install
node server.js

Server runs on http://localhost:3000

API Endpoints

Method Route Description
GET /health Check server is running
GET /members Get all members
POST /members Add a new member
GET /members/:id Get one member by ID
PUT /members/:id Update a member
DELETE /members/:id Remove a member

Member Object

{
  "id": "auto-generated UUID",
  "name": "Caleb Mpungu",
  "email": "caleb@test.com",
  "major": "Computer Science",
  "role": "President",
  "points": 0
}

Example Requests

Add a member

POST /members
Content-Type: application/json

{
  "name": "Caleb Mpungu",
  "email": "caleb@test.com",
  "major": "Computer Science",
  "role": "President"
}

Update points

PUT /members/:id
Content-Type: application/json

{
  "points": 50
}

Project Structure

Project1API/
  server.js     # entry point, Express setup
  router.js     # all 5 routes
  store.js      # reads/writes members.json
  validate.js   # input validation
  members.json  # data file
  README.md     # this file

What I Learned

  • REST API design — structuring routes around resources, not actions
  • Express.js — routing, middleware, req/res cycle
  • Data modeling — designing a member object before writing any code
  • CRUD operations — the backbone of every backend system
  • Input validation — handling missing/bad data with proper HTTP status codes (400, 404)
  • File persistence — reading and writing JSON with Node's fs module
  • Project organization — splitting logic across multiple files (router, store, validate)
  • HTTP status codes — 200, 201, 400, 404 and when to use each
  • UUID generation — using crypto.randomUUID() for unique IDs without a database

Built By

Saidi "Caleb" Mpungu — CS Student, University of Kentucky

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages