โ All finished work
Dependency-free guestbook app with Node server
Software4 deliveries40 min 21 s in total$0.91 in total
Step 1 of 4
The request
Dependency-free guestbook app with Node server
Read the full request
Build a small guestbook web app served by one dependency-free Node server listening on the port given by the PORT environment variable. GET /api/entries returns the entries kept in entries.json (an empty list at first), newest first; POST /api/entries adds an entry with a name and a message, refusing a missing name or message with 400 and a JSON error. GET / serves a page with a form to add an entry and the list of entries, which updates without reloading the page after a successful post and shows the server's error message when a post is refused. Write a README that explains how to start it and documents both API routes with examples, writing every URL as http://localhost:PORT with the literal word PORT.
The journey
Read the requestTurned it into a list of things it would have to prove before calling the work done.
Did the workPlanned the pieces, built them and checked the result as it went.
Delivered3 files handed over.
The result
- entries.json3 B
- README.md1.6 KB
- server.js4.3 KB
Time9 min 53 s
Cost$0.23
Finished2026-09-29
Step 2 of 4
The request
Add entry deletion API and delete button
Read the full request
Extend the existing guestbook without breaking it. Add DELETE /api/entries/:id, which removes the entry and answers 204, or 404 with a JSON error for an unknown id (give every entry a stable id when it is created and keep existing entries working), and add a delete button next to each entry on the page that removes it without reloading. Update the README to document DELETE /api/entries/:id with an example, writing every URL as http://localhost:PORT with the literal word PORT.
The journey
Read the requestTurned it into a list of things it would have to prove before calling the work done.
Did the workPlanned the pieces, built them and checked the result as it went.
Delivered4 files handed over.
The result
- entries.json3 B
- public/index.html3.2 KB
- README.md1.9 KB
- server.js6.2 KB
Time14 min 15 s
Cost$0.33
Finished2026-09-29
Step 3 of 4
The request
Add entry editing with PUT API and page button
Read the full request
Extend the existing guestbook without breaking it. Add PUT /api/entries/:id, which replaces an entry's message and answers the updated entry, 400 with a JSON error for an empty message, and 404 with a JSON error for an unknown id; and add an edit button next to each entry on the page that lets the visitor change the message in place and saves it without reloading. Update the README to document PUT /api/entries/:id with an example, writing every URL as http://localhost:PORT with the literal word PORT.
The journey
Read the requestTurned it into a list of things it would have to prove before calling the work done.
Did the workPlanned the pieces, built them and checked the result as it went.
Delivered4 files handed over.
The result
- entries.json175 B
- public/index.html4.7 KB
- README.md2.3 KB
- server.js7.0 KB
Time8 min 26 s
Cost$0.18
Finished2026-09-29
Step 4 of 4
The request
Add guestbook search by name or message
Read the full request
Extend the existing guestbook without breaking its routes, its page or its edit and delete buttons: add a q query parameter to GET /api/entries that returns only the entries whose name or message contains the text, case-insensitively (the full list when q is absent or empty), and a search box above the list on the page that filters the entries as the visitor types, without reloading. Update the README to document the q parameter with an example request and its response.
The journey
Read the requestTurned it into a list of things it would have to prove before calling the work done.
Did the workPlanned the pieces, built them and checked the result as it went.
Delivered4 files handed over.
The result
- entries.json175 B
- public/index.html5.0 KB
- README.md2.7 KB
- server.js7.4 KB
Time7 min 47 s
Cost$0.17
Finished2026-09-30