Skip to content

Commit 0f6b92a

Browse files
committed
doc added
1 parent 4e93058 commit 0f6b92a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+4423
-3068
lines changed

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
docs/
22
log/
33
public/
4+
doc/

README.md

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +0,0 @@
1-
# NodeJS Work Sample (roster editor)
2-
3-
Welcome to the Digication work sample for NodeJS developers! This is our way to get some experience working with you and to get an idea about your level of NodeJS skills and knowledge about common npm packages. There is no official time-limit for this exercise, but you should finish it within a week. We encourage you to take the time you need in order to provide quality work that best reflects your skills.
4-
5-
## Context
6-
7-
A new course roster editor is needed! Imagine we are building an app for a university, where we need to provide a way for administrators to manage who should be teaching or taking a course. The frontend will be implemented at a later time. Today our goal is to create a basic version of the backend.
8-
9-
## Data Models
10-
11-
- The `Course` has `id` and `name` fields.
12-
- The `User` consists of `id`, `name` and `email`.
13-
14-
### Relationships
15-
16-
The model relationship in this example is kept as simple as possible, think of it this way:
17-
- Courses have many users assigned of which some can be flagged as faculty.
18-
- Users can be enrolled in many courses
19-
20-
## API methods
21-
22-
- Add the necessary functionality to add/remove users to/from courses. This should also allow mark/flag a user as faculty of the course.
23-
- Provide a way to get the users enrolled in a given course (and their faculty status).
24-
- You do not need to provide CRUD APIs for the Users and Courses models, but feel free to do so if you need them.
25-
26-
## Technical Requirements
27-
28-
You have to use NodeJS >10.0, expressjs 4.x and a relational database. This work sample already includes SQLite but feel free to use a different one. Regarding an ORM and SQL query builder we have selected `sequelize` but the final choice is up to you.
29-
30-
Since your backend app will be used by other developers, documentation of the API (check the scripts in `package.json` for an idea how you could do this) and unit tests will be much appreciated. Please make sure to apply common design patterns and best practices.
31-
32-
Please also point out which recommendations regarding security would you have, given that React will be used to build the frontend.
33-
34-
## Encouragement
35-
36-
Please don't go overboard with using external packages and don't try to introduce extra complexity in your code just for the sake of showcasing your skills. A simple and elegant solution for this should be your goal.
37-
38-
Digication team members have worked through this work sample to make sure we are not asking for too much of your time. This shouldn't take you longer than a couple of hours depending on your knowledge and the bells and whistles you want to add.
39-
40-
We are looking forward to hearing from you!

0 commit comments

Comments
 (0)