/codingexercise

Full Stack Developer Coding Exercise

Primary LanguageJavaScriptMIT LicenseMIT

Full Stack Developer Coding Exercise

A coding exercise to assess the competency of candidates.

Requirements

  • Node.js, npm and bower installed
  • SQLite3 installed

Setup

  1. Clone this repository

  2. Install the backend dependencies

     npm install
    
  3. Install the frontend dependencies

     bower install
    

Usage

Launch the express server:

DEBUG=codingexercise:* npm start

And open your browser at http://localhost:3000/

Chosen solution

I develop a simple and easy to use todo list. I made the backend using Node.js, Express and Sequelize (with SQLite3). For the frontend, I choose to design a responsible web application using AngularJS and Materialize.

The required functionalities were implemented as follow: View all todos (list), add a todo (create), check a todo (update) and remove a todo (delete).

The solution could be improved by adding input validation on both the backend and the frontend, and by improving the error handling on the backend side.

About us

Enterprise Mobility Centre Of Excellence at CGI Group inc. is a very competent team that develops high quality and performance mobile, backend and responsive web applications for different clients around the globe.

Context

Thanks for applying to Full Stack Developer internship position at Enterprise Mobility Centre Of Excellence, CGI Group inc.

To be able to find right talents, we recommend candidates to finish the following coding exercise.

Thanks for your collaboration. We are looking forward to have you on board and share a great experience together.

Coding exercise

Please create a pull request and develop a very simple backend application and a frontend application that provides the following functionalities:

  • create
  • list
  • delete
  • update

for any item type of your choice (e.g. task, todo, note, event,...)

Backend

Please leverage one of the following technologies:

  • NodeJS and Express
  • Ruby On Rails
  • Java EE or Spring Framework

Please feel free to select any of the above technologies that you are most comfortable with.

Frontend

Also, please develop a frontend application for one of the following platforms:

  • iOS
  • Android
  • Web

that leverages your backend and empowers users to perform the create, list, delete and update functionalities on list of items.

Please feel free to select any of the above platforms that you are most comfortable with.

Considerations

Please take the following into the consideration as much as you can while developing the solution:

  • Simplicity
  • Reusability
  • Scalability
  • Performance
  • Usability
  • Code quality
  • Design patterns and best practices