Skip to content

Instantly share code, notes, and snippets.

@ragelo
Last active June 7, 2018 09:04
Show Gist options
  • Save ragelo/a988670645f7c2ba65362443aa7e2f02 to your computer and use it in GitHub Desktop.
Save ragelo/a988670645f7c2ba65362443aa7e2f02 to your computer and use it in GitHub Desktop.
Test project NODE.js backend

Node.JS Test Project

GOALS

  • Check programming skills.
  • Check experience of known-technologies and libraries, and and the speed of understanding new.
  • Check quality of the code and reusability of solutions.
  • Check unit testing knowledge.

SPECIFICATIONS

The project is online store vinyl records. No auth required. Docker-compose to start environment.

All APIs should be declarated with GraphQL.

Main Types:

category (has 0 or many disks) {
	id
	name
}
disk (has one or many categories) {
	id
	name
}
category_disk {
	category_id
	disk_id
}

Queries:

node(id) // get record by id (globalized id should be presented as` base64(‘Type:database_id’)`)
categories // with pagination
disks // by category id or all, with pagination

Mutations:

add category
change category name
delete category

create disk
change disk name
delete disk
add disk to category
remove disk from category

DEPENDENCIES

Mandatory:

  • MacOS/Linux
  • PostgreSQL 9.3
  • Node.JS 8
  • express
  • sequelize
  • graphql
  • graphql-relay

Optional:

  • docker
  • docker-compose
  • yarn

Nice to have:

  • jest (nice to have at least some tests to show understanding, very good will be tests of graphql queries and mutations)
  • flow // static code check
  • babel // to compile/run from Flow sources
  • eslint // code style
  • makefile // (optional)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment