Skip to content

Task 1: RESTful CRUD API for projects - #1

Open
ar77amalroy wants to merge 1 commit into
shipyard-lab:mainfrom
ar77amalroy:main
Open

Task 1: RESTful CRUD API for projects#1
ar77amalroy wants to merge 1 commit into
shipyard-lab:mainfrom
ar77amalroy:main

Conversation

@ar77amalroy

Copy link
Copy Markdown

Hey! Submitting my work for Task 1 - RESTful CRUD API for Projects.
Built the backend with Express.js and frontend with Next.js.
Used an in-memory store with 6 pre-seeded sample projects.
What's included:

  • All 5 CRUD endpoints with validation and error handling
  • Pagination, search and status filter on the list endpoint
  • Unit tests for all endpoints
  • README with setup instructions

@Carbonite13

Copy link
Copy Markdown
Collaborator

Ok, Your work seems good. Thats a plus, proper documentation and other specifics.

The question is, if we asked you to explain the working of what you just did, the wiring and flow of execution, will you be able to explain it ?

@Carbonite13

Copy link
Copy Markdown
Collaborator

also, a small suggestion from my side, try to include docstrings documenting the need for each functions and their parameter types and other technicals.

@ar77amalroy

Copy link
Copy Markdown
Author

Ok, Your work seems good. Thats a plus, proper documentation and other specifics.

The question is, if we asked you to explain the working of what you just did, the wiring and flow of execution, will you be able to explain it ?

In simple terms: Frontend collects data from the user -> sends it to Express -> Express validates it -> saves or reads from the array -> sends back the result -> Frontend updates the screen.

@ar77amalroy

Copy link
Copy Markdown
Author

also, a small suggestion from my side, try to include docstrings documenting the need for each functions and their parameter types and other technicals.

Sure

@Carbonite13

Copy link
Copy Markdown
Collaborator

Ok, Your work seems good. Thats a plus, proper documentation and other specifics.
The question is, if we asked you to explain the working of what you just did, the wiring and flow of execution, will you be able to explain it ?

In simple terms: Frontend collects data from the user -> sends it to Express -> Express validates it -> saves or reads from the array -> sends back the result -> Frontend updates the screen.

Okey. But, This is a standalone POC, when its a team, you are not working alone, there are other team members working on other modules, concurrently. So, in that case ,you should be able to explain the technical aspects of the module you designed, inorder to both integrate and to brainstorm about further improvements and architecture. Thats what i asked, can you explain?

Not abstract level, implementational level. Can you?

@Carbonite13
Carbonite13 self-requested a review June 10, 2026 10:39
@ar77amalroy

Copy link
Copy Markdown
Author

Ok, Your work seems good. Thats a plus, proper documentation and other specifics.
The question is, if we asked you to explain the working of what you just did, the wiring and flow of execution, will you be able to explain it ?

In simple terms: Frontend collects data from the user -> sends it to Express -> Express validates it -> saves or reads from the array -> sends back the result -> Frontend updates the screen.

Okey. But, This is a standalone POC, when its a team, you are not working alone, there are other team members working on other modules, concurrently. So, in that case ,you should be able to explain the technical aspects of the module you designed, inorder to both integrate and to brainstorm about further improvements and architecture. Thats what i asked, can you explain?

Not abstract level, implementational level. Can you?

Yes. In this case, there would be 4 clear layers, each handling its own task.
The routes do not have any logic – they just pass the requests further. Everything else will be validated by the middleware before passing to the controller. That includes checking required fields and correct lengths, as well as status values.
In case of any invalid input, the middleware will halt the flow and return a 400 response with an appropriate message.
The actual logic takes place in the controller. There is a separate function per endpoint, and it does not talk to anything besides the store.In essence, the store serves as our data access layer. Currently, it is an in-memory array wrapped in helper functions, which allow us to change the store type without any problems. we can use SQLite or Postgres without touching anything but the store itself.
Finally, there is a global error handler below, which catches everything unexpected and returns a clean JSON error instead of crashing theserver.
As you can see, for any integration, one needs to know just two interfaces: that of the store and API contract.

@Carbonite13

Copy link
Copy Markdown
Collaborator

Stay tuned for further notice!

@shipyard-lab shipyard-lab locked as resolved and limited conversation to collaborators Jun 10, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants