Take home test for ProjectMark
Find a file
Rodrigo Pinto f1170341fb Classes and interfaces
Changed the topic model to use classes and interfaces instead of direct
assignments.
2025-04-05 01:15:42 -03:00
src Classes and interfaces 2025-04-05 01:15:42 -03:00
tests Version control and retrieval endpoints 2025-04-04 16:28:06 -03:00
.gitignore Initial commit 2025-04-01 17:28:15 -03:00
eslint.config.mjs Install NodeJS, TypeScript, ExpressJS and ESLint 2025-04-01 17:58:14 -03:00
jest.config.ts Basic structure of the project 2025-04-02 17:07:06 -03:00
LICENSE Initial commit 2025-04-01 17:28:15 -03:00
package-lock.json Basic structure of the project 2025-04-02 17:07:06 -03:00
package.json Basic structure of the project 2025-04-02 17:07:06 -03:00
README.md Version control and retrieval endpoints 2025-04-04 16:28:06 -03:00
tsconfig.json Install NodeJS, TypeScript, ExpressJS and ESLint 2025-04-01 17:58:14 -03:00

ProjectMark-Rodrigo

Take home test for ProjectMark

Run the project

This project requires NodeJS version 19 or newer.

  • Install dependencies:
npm install

Start project:

npm run start

Usage

You can use Postman or Curl to make calls to the API. The examples below use Curl.

Create a topic:

curl -X POST http://localhost:3000/api/topics \
  -H "Content-Type: application/json" \
  -d '{"name": "A topic", "content": "Topic content"}'

Get all topics:

curl -X GET http://localhost:3000/api/topics

Get specific topic:

curl -X GET http://localhost:3000/api/topics/1234567890

Replace 1234567890 with the topic id.

Update a topic:

curl -X PUT http://localhost:3000/api/topics/1234567890 \
  -H "Content-Type: application/json" \
  -d '{"name": "Updated topic"}'

Replace 1234567890 with the topic id.

Get specific version of a topic:

curl -X GET http://localhost:3000/api/topics/1234567890/1

Create a child topic:

curl -X POST http://localhost:3000/api/topics \
  -H "Content-Type: application/json" \
  -d '{"name": "A topic", "content": "Topic content", "parentTopicId": 1234567890 }'

Delete a topic:

curl -X DELETE http://localhost:3000/api/topics/1234567890

Replace 1234567890 with the topic id.

Tests

Run tests with:

npm run test