GithubHelp home page GithubHelp logo

node-exercises's Introduction

Repository reserved to candidates taking the programming test for the open position of "full stack developer" at Kopjra Srl. In order to complete the test, 4 hours (est.) are needed.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

  1. Fork this repository;
  2. Do the exercise of your choice, following both common and specific directives;
  3. If you have any question, feel free to ask mailing to your contact person or [email protected];
  4. Following the completion of the excercise, open a pull request: please note that there is no delivery deadline.

Common directives

You MUST include a plaintext/markdown file (INSTRUCTIONS.md) that lists all the shell commands required to make your application work, including all the additional hypotheses on the underlying environment and business requirements (those SHOULD be as few as possible).

The front-end MUST be a Single Page Application built in React and it MUST consume the RESTful APIs of your back-end. For the basic templating you SHOULD use Bootstrap. You MAY use Gulp for the automated building process.

The back-end MUST expose RESTful APIs and it MUST be built in Javascript using Node.js on the Express 4 framework. Instead of using a database, every interaction with the persistance layer SHOULD be mocked properly. All the back-end calls MUST accept just an application/json and MUST respond with the same content type.

You MAY serve static content through Express. You SHOULD NOT pre-render HTML through the back-end.

You MAY manage user creation; otherwise just provide a set of users. Choose your preferred authentication and authorisation model.

Exercise 1

Build a simple notekeeping website.

Business requirements

  1. Every user can create, edit and delete any amount of notes;
  2. Notes are secret (ie: accessible only to the creator);
  3. Notes contain a title, a body and the creation date;
  4. Notes can be tagged;
  5. Every user can create, edit and delete any amount of tags;
  6. Tags are secret;
  7. Tags contain just the name of the tag;
  8. Users can list their notes and tags;
  9. Users can browse their notes by tag and creation date.

Exercise 2

Build a simple online food ordering application for a restaurant.

Business requirements

  1. Every regular user can place any amount of orders;
  2. Every order must contain at least a course;
  3. A course contains a title, a body and a price;
  4. The administrator can create, edit and delete any amount of courses;
  5. The administrator can list the orders;
  6. The administrator can view the details of an order;
  7. Every regular user can list his own orders;
  8. Every regular user can view the details of any of his own orders;
  9. Payment is cash only on delivery.

node-exercises's People

Contributors

emanuelecasadio avatar rafalneves avatar

Watchers

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