
How to start the server
# Run this line if it's the first time you try to build
npm i
npm run start:dev
Link to heroku
premierleaguez
Link to documentation
backenddevelopertest
Link to docker build
backend-developer-test
Software Developer Application Test
Create a API that serves the latest scores of fixtures of matches in a “Mock Premier League”
User Types
There should be:
- Admin accounts which are used to
- signup/login
- manage teams (add, remove, edit, view)
- create fixtures (add, remove, edit, view)
- Generate unique links for fixture
- Users accounts who can
- signup/login
- view teams
- view completed fixtures
- view pending fixtures
- robustly search fixtures/teams
- Only the search API should be availble to the public.
Authentication and Session Management
- Use redis as your session store.
- Authentication and Authorization for admin and user accounts should be done using
Bearer token and JWT.
Tools/Stack
- NodeJs (JavaScript or TypeScript)
- MongoDB
- Redis
- Docker
- POSTMAN
- Jest
- Express
Tests
Unit tests are a must, submissions without tests will be ignored.
Submission
- Your API endpoints should be documented in POSTMAN.
- Seed the db with lots of data before final submission.
- Code should be hosted on a git repository, Github preferably.
- The API should be hosted on a live server (e.g. https://heroku.com)
Bonus
You'll get bonus points for:
containerization using docker.
- Thorough documentation using POSTMAN.
- e2e tests and use of
Jest for tests.
web caching API endpoints using Redis.
- Implementing
rate limiting for user account API access.
Time Duration
7 days
NB:
Please send an email to acknowledge the receipt of this document.