Build, Test & Document a Working Express REST API
The capstone project for Node.js & Express Basics — a free Data & Tech course. Pass it and you earn a certificate anyone can verify.
- Free
- 6 steps
- Pass mark 65%
- Graded within minutes
- Beginner-friendly
The project unlocks once you complete the lessons. The workbook is free to download now so you can see exactly what is expected.
What you will submit
A public GitHub repository link containing your Express REST API (with .gitignore excluding node_modules and .env) and a README that documents every endpoint, the HTTP method, an example request, and the example JSON response — plus a note of the Postman tests you ran for each endpoint.
What to do, step by step
- Set up a fresh Node project (npm init -y, install express, mongoose, dotenv, and nodemon as a dev dependency) and create a .gitignore that excludes node_modules and .env from the very start. Build an Express server that listens on process.env.PORT || 3000 and turns on app.use(express.json()) so it can read JSON bodies.
- Choose ONE simple resource that means something to you — for example products in a shop, students in a class, or jobs on a board — and connect a free MongoDB Atlas cluster using Mongoose. Define a Schema with at least three fields (e.g. name, price, inStock) and keep the connection string only in your .env file, never in the code.
- Implement full CRUD with the correct HTTP methods on a sensible plural route: GET /items (list all), GET /items/:id (one item), POST /items (create), PUT /items/:id (update), and DELETE /items/:id (remove). Save and fetch real data with Mongoose (save, find, findById, findByIdAndUpdate, findByIdAndDelete) using async/await.
- Add proper error handling: wrap database calls in try/catch, return a clean 404 with a JSON message when an item isn't found, return 201 on successful create, and 500 on unexpected errors. Confirm req.body is read correctly thanks to express.json().
- Test every endpoint in Postman: send a POST to create an item, GET the full list and a single item, PUT to update it, and DELETE it — then take screenshots or note the status code and JSON response for each. Make sure each method returns the right status code (200/201/404/500).
- Push the project to GitHub (confirm node_modules and .env are NOT uploaded) and write a clear README that lists every endpoint, its method, what it does, an example request body where relevant, and the example JSON response. Submit the GitHub repository link.
Files to work with
Project workbook (fill in, then submit)The whole brief, an evidence checklist, the grading rubric as a self-check and the link-sharing steps in one file. Opens in Word, Google Docs or WPS.Word · 7 KBHow it is graded
| Criterion | Weight |
|---|---|
| Working Express server with all five CRUD routes using the correct HTTP methods (GET, POST, PUT, DELETE) on sensible plural routes | 30% |
| Database connected via Mongoose with a proper Schema, data persisting across restarts, and the connection string kept only in .env | 25% |
| Error handling and correct status codes: try/catch, clean 404 for missing items, 201 on create, 500 on server errors, and JSON responses throughout | 20% |
| Each endpoint tested in Postman with evidence (screenshots or noted status codes and JSON responses) showing it works | 15% |
| Clear README documenting every endpoint plus a clean repo (node_modules and .env not committed) | 10% |
You need 65% overall to pass. A failed submission comes back with feedback and can be revised and resubmitted.
Before you submit: make your link public
If your work lives in Google Drive or Google Docs, open Share → General access and change “Restricted” to “Anyone with the link” (Viewer). Then paste the link into a private browser window: if it opens without sign-in, you are ready. A private link cannot be graded — it is the single most common reason a good project fails.
Frequently asked questions
Do I have to finish Node.js & Express Basics before submitting the project?
Yes. The submission screen opens once every lesson in Node.js & Express Basics is marked complete. The lessons are where the methods, the Nigerian context and the worked examples the project depends on are taught.
How is the project graded?
An examiner scores each rubric criterion from 0 to 100 and weights them as shown on this page; you need 65% overall to pass. Most submissions are graded within minutes and you get written feedback on what was strong and what to improve.
Can I resubmit if I fail?
Yes. A failed project comes back with feedback; revise the weak parts and resubmit. A passed project is final — the certificate is issued and cannot be re-rolled.
What do I actually submit?
A write-up of what you did (under 5,000 characters) plus a public link to your work — a Google Drive folder, Google Doc, spreadsheet, GitHub repository or video. The link must open without sign-in; a private link cannot be graded. The free project workbook on this page walks you through all 6 steps.
Is the certificate real?
Yes. Passing this project issues a certificate with a unique verification code. Anyone — an employer, a client, a school — can open the verification page and see that the certificate is genuine and which project earned it.
More Data & Tech projects
- Sales Dashboard for a Local Business
Data Analysis Foundations
- My Skillnaija Frontend Portfolio
Frontend Web Development
- My First Python Program: 'Kudi Tracker'
Coding Foundations
- Your Junior Technician Field Pack
Data Centre Technician: Racks, Power, Cooling, Cabling and Remote Hands
Ready to earn this certificate?
Node.js & Express Basics is free and self-paced. Finish the lessons, complete this project, and the certificate is yours to share.
Start learning free