Giter Club home page Giter Club logo

yodlr-take-home's Introduction

Yodlr Front End Engineer Code/Design Challenge

Challenge

The purpose of this app is to demonstrate design and frontend integration capability.

The app uses a static backend via a json file and allows the user to signup, view all users, and activate admin functionality for any user. I decided to use React for the frontend becuase of familiarity and ease of componentizing.

At a minimum, there were three things required for the app/submission:

  • Users should be able to register
  • Admin page should list all users
  • Design/layout of content

In addition to the above, the app also integrates:

  • form validation using Formik
  • dynamic data in the admin route, allowing for user admin activation seamlessly
  • searching of users within the admin route
  • component testing
  • Material UI design

Getting Started

To use this application, you will need to download and install NodeJS.

Fork this repository and git clone your fork:

git clone https://github.com/marcomariscal/yodlr-take-home.git

Next, you need to install the package dependencies by running the following command in the top-level directory of this source tree:

npm install

Once the dependancies are installed, you can start the application server by running

npm start

Once the server is running (npm start uses concurrently to start the frontend and the backend), you can access the app's frontend by opening your browser to http://localhost:3000.

To stop the server, press CTRL-C.

REST API

The Users JSON REST API is exposed at http://localhost:5000/users.

On server start, user data is read into memory from init_data.json. All subsequent actions are done against this memory store. Stopping and starting the server will re-initialize data from init_data.json.

API Endpoints

  • /users
    HTTP GET: returns array of all users
    HTTP POST: creates a new user, returns the created user data
  • /users/:id
    HTTP GET: returns the user with given id (numeric, auto-incrementing). HTTP 404 if user not found
    HTTP PUT: updates the user with given id and returns updated record. HTTP 404 if user not fund.
    HTTP DELETE: removes the users with given id, returns nothing (HTTP 204)

Here is an example of results returned from HTTP GET on /users:

[{"id":1,"email":"[email protected]","firstName":"Kyle","lastName":"White","state":"active"},
{"id":2,"email":"[email protected]","firstName":"Jane","lastName":"Stone","state":"active"},
{"id":3,"email":"[email protected]","firstName":"Lilly","lastName":"Smith","state":"pending"},
{"id":4,"email":"[email protected]","firstName":"Fred","lastName":"Miles","state":"pending"},
{"id":5,"email":"[email protected]","firstName":"Alexandra","lastName":"Betts","state":"pending"}]

yodlr-take-home's People

Contributors

marcomariscal 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.