1. Create your repo by using this repository as a template.
2. Code the exercice.
3. When you are done, send the link of your repository to your interviewer, while making sure he/she can access it.
In order to run the project, there is a couple of technologies you need to install to your device.
- Node
- MongoDB and Mongo Database Tools
- Redis
- Npm or Yarn
- Typescript
You'll need to set the following variables
ℹ️ You can directly past the variables below in a file called .env.development.local
inside the folder back
# PORT
PORT = 3002
# DATABASE
DB_HOST = localhost
DB_PORT = 27017
DB_DATABASE = dev
# CACHE
REDIS_URL = 'redis://localhost:6379/1'
# TOKEN
SECRET_KEY = secretKey
# LOG
LOG_FORMAT = dev
LOG_DIR = ../logs
# CORS
ORIGIN = *
CREDENTIALS = true
- Install both
front/
andback/
packages using ➝npm install
oryarn i
- Start back
npm run dev
oryarn dev
- Start front
npm run web
oryarn web
Everything should now run smoothly, you are all set !
The project is to finish the creation of an application that will allow its users to check Velib bikes statuses available in Paris in order to easily get home from work (and vice-versa). The project was started by another developer who already took care of preparing database models and API endpoints for you to use and improve on, based on the front-end implementation requirements.
Your goal will be to discover the architecture, implement the front-end, and make any back-end changes required to fulfill the user stories listed below.
- As a user I should be able to register, log-in and log-out in order to access and use the application.
- As a user I should be able to get displayed a list of stations with any relevant details in order to know how many bikes are available for each of them.
- As a user I should be able to search through the list of stations by name, in order to check its available bikes.
- As a user, I should be able to click on a button that filters the list of stations that have available bikes by types (electrical or manual), in order to easily get displayed stations with available bikes of my prefered type.
- The API endpoint in the
back/
folder uses the Velib' Open Data API to fill the database via a cron job. The station statuses are updated every 2 minutes. - The repository should already include everything needed to fulfill the tasks, but you are free to add any additional libraries that you might find useful to complete the assignement.
⚠️ The code needs to be written in Typescript !
⚠️ The code needs to use react-native-web components. All components should be functional and their props typed.
- The application produced should work on web and be responsive. It is not required to run the project on native mobile (ios / android).
- There should be an implementation of a state management system.
- The list of stations should be displayed as an infinite or a paginated list.
- User login informations should be persisted client side.
- The station list bikes availability status should be re-fetched and updated automatically at frequent intervals.
- Make it look good, and have fun with it 😊