Skip to content
This repository has been archived by the owner on Oct 2, 2023. It is now read-only.

rsm-hcd/challenge-node-react

Repository files navigation

Andculture Development Challenge

We would like you to build a React application utilizing Node.js and Express to create the supporting API. The project will also use a MongoDB database. This may sound like a lot, but we are using a boilerplate project to get you up and running. If you encounter any issues while working through this challenge please share with us what they were and how you overcame them or worked around them. The requirements for the application are listed below in the Technical Requirements section. There are also stretch goals if you are interested.

This boilerplate is built using the following libraries:

  • Express web server
  • Bootstrap/Sass
  • React + Redux
  • Webpack
  • Mocha (JS testing)
  • Mongoose (MongoDB abstraction)

Technical Requirements

  • Show a list of students with the following information:
    • First Name
    • Last Name
    • Email
    • Age
    • Grade (1st, 2nd, 3rd, etc...)
  • The user should be able to add a new student
  • The user should be able to edit the an existing student record
  • The user should be able to delete a student
  • Before a student can be removed, a confirmation dialog should be displayed that asks the user if they really want to delete the student
  • Create a mixin for rem font sizes, and apply it to all headings in correct scss partial.
  • Create a sass map for defining colors. Use color map to make paragraph tags a color of your choosing.

Stretch Goals

  • Demonstrate unit tests on your API controllers and/or React components
  • Add paging to the student list
  • Add filtering to the student list
  • Allow sorting by column on the student list
  • Show form validation client side making student first and last name required
  • Utilize a JS abstraction such as TypeScript
  • Deploy to cloud host such as Heroku
  • Add custom classes on alert dialog using BEM Methodology, and style it in its respective scss partial.

Software Requirements

  • Node 7.x

Environment Setup

  • Extract the contents of the .zip file
  • Set up a MongoDB instance either locally or using a free hosting site such as the following:
    1. MongoDB Atlas - https://www.mongodb.com/cloud/atlas
    2. mLab - https://mlab.com/
  • Create a .env file in the root folder of this project (where this README file is) with the following content:
MAILGUN_USERNAME='postmaster@sandbox67c118365e564798a8864434e4b2a3cb.mailgun.org'
MAILGUN_PASSWORD='ed49d942fd9e6c11208ee3aacb29df9d'

MONGODB='<your connection string here>'

TOKEN_SECRET='eba00e9551cdf0adf059243456ef077915abb4b2f1094c1ea8ce94d366ad410a'
  • Open command terminal to the extracted folder
  • In terminal run
    1. npm install to install all dependencies
    2. npm start to run the application
    3. navigate to http://localhost:3000 in your browser to access the application

Mega Boilerplate App (Node.js)

Generated by http://megaboilerplate.com

Configuration

  • Platform: node
  • Framework: express
  • Template Engine: handlebars
  • CSS Framework: bootstrap
  • CSS Preprocessor: sass
  • JavaScript Framework: react
  • Build Tool: webpack
  • Unit Testing: mocha
  • Database: mongodb
  • Authentication: email
  • Deployment: heroku

License

The MIT License (MIT)

Copyright (c) 2016 Sahat Yalkabov

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

Coding challenge using Node.js and React

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •