Giter VIP home page Giter VIP logo

meilleursagents-frontend-test's Introduction

Aviv Frontend Technical Test

Aviv logo

Presentation

This repository contains instructions for the Aviv - Owner - Frontend Technical Test.

Its objective is to give us an overview of your practical technical knowledge through the realisation of an application that matches what we do as Frontend Engineer at Aviv.

Objective

The aim is to develop the client side code of an application allowing visualising of all the messages sent to a realtor agency based on a given API.

Messages can be of different types: email, text message, voicemail.

The app will be used by the agency collaborators. Any collaborator can visualise the messages for one or several agencies to which they are attached to.

This test is a simplified version of one of our existing application.

When you are done, there's a few questions to answer in the SOLUTION.md document.

How to start the test

This repository being a template, it's possible to create a new project using this one as a template. Check the big green Template button. Thanks to let the generated project as a private one.

repository

Alternatively, you can always clone this repository.

git clone [email protected]:MeilleursAgents/frontend-technical-test.git

Restitution

When you are happy with the result of your test, and if you already applied, please send a .zip of the complete repository (minus the node_modules folder) to the tech recruiter that sent you the test using "Reply all".

If you haven't applied yet, you can send us your technical test to the following email address with your coordinates and/or your CV: [email protected]

One of our tech recruiters will then be in touch with you for an interview while your test is being reviewed.

If your test meets our criteria to get to the next step, you will subsequently meet one of our managers alongside a couple of developers to debrief your technical test, during an hour long session of demo/code review where we will talk about your test, your career, and motivations to join us.

⚠️ CVs alone are not allowed to this email address. To apply, all our job offers are available on our LinkedIn page.

Completion time

The time you spend on this test is not limited. The idea is to take your time, respect the assignment, and send us the result when you are happy with it.

Logical and technical functionnalities

Required for the test presentation step

Product functionnalities:

  • I can switch agencies via both the select and the URL and I see the messages list for the selected agency.
  • I can scroll through the messages list on several pages regardless of the screen size.
  • I can click on a message and open the message details.
  • If the message wasn't read, the counter decrements

Technical implementation:

  • Develop the small and large screen version
  • Develop the agency switch mecanism via both a native HTML select and the URL (routing)
  • Develop the agency view with the messages list
  • Develop the possibility to read a message through the URL (routing)
  • Respect the routing structure /realtors/:id and /realtors/:id/messages/:id
  • Handle the unread message counter (send a request to the API to make the value persist)
  • Handle the pagination (infinite scroll)
  • Respect the mockup fidelity

Appreciated with the implementation

⚠️ Those are expected for the Senior and Principal Engineer positions

  • Unit and functionnal tests: a 100% coverage is not necessary, just make them pertinent
  • Good accessibility practices
  • Relative dates on the messages list e.g. "Yesterday", "Two hours ago"

Technical constraints

  • Use a JS library/framework
  • Use the provided API
  • Develop the application in the front folder

Technical liberties

  • Use of tooling, CSS alternatives or not for the style
  • Use of TypeScript or JavaScript

React Boilerplate

Vite + React + Typescript + Eslint + Prettier : the closest to our new applications used for our B2B customers

rm front/.gitkeep && git clone [email protected]:TheSwordBreaker/vite-reactts-eslint-prettier.git ./front

Next.js : what we use for our public facing website in server side rendering

npx create-next-app ./front

Create React App : the basic approach

npx create-react-app ./front

Another framework can be used such as Vue.js, Angular, etc.

Design

The mockups in the Figma format and PDF are provided. You will find some assets in the assets folder.

Docker API

Installation

To install Docker Desktop, go to Docker.

Start the API

The Swagger and API are available at the following address http://localhost:8080 by using the command:

docker run -p 8080:8080 --rm --name MA-FTT-API meilleursagents/frontend-technical-test-api

API Endpoints

  • Realtor list

    • curl http://localhost:8080/realtors
  • Realtor details

    • curl http://localhost:8080/realtors/101
  • Realtor messages list

    • curl http://localhost:8080/realtors/101/messages
    • curl http://localhost:8080/realtors/101/messages?page=2
    • curl http://localhost:8080/realtors/101/messages?page=2&page_size=20
    • curl http://localhost:8080/realtors/101/messages?page=2&page_size=20&sort=date:desc
  • Single message details

    • curl http://localhost:8080/realtors/101/messages/1001
  • Mark a message as read (data can only be application/json)

    • curl -X PATCH -H "Content-Type: application/json" http://localhost:8080/realtors/101/messages/1001 -d '{"read":false}' (explicit mark as unread)

API Schemas

You'll find every schemas in the "Schemas" section of the documentation The pagination header is called X-Pagination and the format is called PaginationMetadata

meilleursagents-frontend-test's People

Contributors

julienlucas avatar theswordbreaker avatar paulthompson avatar imgbotapp avatar vuxor avatar xk0nsid avatar

Stargazers

Roman avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.