lutogin / test-seedium.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Test assignment

Seedium

Getting started

  1. Check all requirements from this file. Then check API requirements
  2. Clone the repository
  3. Create branch from master with name test-<email>. Please specify email on that we have send invite
  4. You will start from src/ folder. All your written code will be there.
  5. You can use any nodejs framework that supports by "chai-http" module (Express, Koa, Fastify and etc). Or write on the pure http module. It's only up to you.
  6. Open file src/index.js. Your entry point will be here and export by default you app instance. (It's instance will be used in tests).
  7. After finishing a work, please run npm test command and check that all tests are passed.
  8. Then in GitLab create new "Merge Request" where source branch it will be you test-<email> branch and target will be master branch. Title of merge request set Test work: <email>. In Assignee field please set our developer @kostyazgara, then submit merge request.

What we expect

  1. Using MongoDB as main database.
  2. Good project structure. Separate controllers, services, data layer
  3. Validation requests and responses.
  4. Implementation of cursor pagination
  5. All tests should be passed
  6. Properly handled errors

Will be a plus

  1. Use typescript
  2. Use pure mongodb drive, without any ODM like Mongoose

Before start

  1. image should be a separate collection
  2. Do not touch files with tests, expect one thing
    1. For properly test going you should complete 2 functions - createPosts and removePosts. Please, use comments near there functions for understanding how it should work
  3. Feel free to organize your application structure as you want.
  4. Feel free to use any libs from npm.

Estimations

  1. Project and tasks understanding - 30 minutes
  2. Project set up (clone repository, install dependencies) - 30 minutes
  3. Build models and schemas - 1 hour
  4. Develop controllers - 2 hour
  5. Develop validation - 1 hour
  6. Develop business logic (services for processing main functionality, such as get posts, create posts and etc) - 3 hours
  7. Test passing - 1 hours
  8. Refactoring - 1 hour

Total time to accomplishing test assignment - 10 hours. If you feeling that writing tests taking more time that estimated, please don't spend more time and send us everything that is ready!

For additional questions, please don't hesitate to contact with me k.zgara@seedium.io (Kostya Zgara, developer of Seedium)

About


Languages

Language:JavaScript 100.0%