Welcome to the Roster! This full-stack application keeps track of all the members of your team: it is built with React, Node.js/Express.js and SQLite3/Sequelize.
โ๏ธ This application requires Node.js to be installed. However, not all project dependencies are not compatible with the most recent versions of Node. Please ensure you are working with Node.js v12.x!
From the root directory, run:
npm install
Next, npm run seed
will seed the local SQLite database, which lives in a local file, database.sqlite3
. Warning: This will drop the database if it already exists!
Finally, run npm start
, which will start both the server and the React build process.
- React v16.8.6
- Node.js v12.x
- Express.js v4.17.1
- SQLite3 v4.2.0
- Sequelize v5.8.8
- The server is running with nodemon which will automatically restart for you when you modify and save a file.
- The frontend was bootstrapped with Create React App
- The database provider is SQLite, which will store data in a file local to your repository called
database.sqlite3
. The ORM Sequelize is on top of it. You should only have to interact with Sequelize. - The API client is axios.
- The server is running on port 3001 and all AJAX requests from the frontend will automatically proxy to that endpoint. For instance, you can
axios.get('/team')
and it will automatically hitlocalhost:3001/team
.
Below is a list of user stories corresponding to our acceptance criteria.
-
I can click a button inside the empty "NEW TEAMMATE" card at the bottom that says 'Join the team!'.
-
Clicking the 'Join the team!' button displays a form allowing me to fill out all of my team member information as per the data model (see
backend/model.js
). -
Filling out the form will create a new team member in the database that persists on reload.
-
I can see team member cards for all of the new team members I have created.
Given the time expectations of this exercise, we don't expect anyone to submit anything super fancy, but if you find yourself with extra time, feel free to add items to showcase your unique strengths.
Upload your repo (with README, including instructions on how to run your app) to your GitHub. Either make it public or share to the HRJSP1 team. Then use this form to submit your repo.
Create a bundle of your work by running npm run bundle
in the repo root.
This generates a bundle file called take-home-exercise
based on your local master branch. Upload this file to your Google Drive using the same account that you use for JSP. Then, use this form to submit the file.
Good luck!