---
# System prepended metadata

title: Hyphen Assesment Test

---

# Hyphen Assesment Test

## Project structure
This project is divided into 2, as client and server.

- `/client`
- `/server`

### Client

##### Framework - React

![](https://i.imgur.com/zb4pEsQ.png)

Uses [styled component](https://styled-components.com) to create reusable UI components which was used to implement the UI stories


### Server

##### Database - MongoDB

The database model is simple as possible in order to allow future extension and avoid complexity on current task.

```js
const SurveySchema = new mongoose.Schema({
	question: { type: String, required: true },
	answers: { type: Array, required: true }
}, { timestamps: true });
```

In future extension, `Question` can be an actual entity that holds reference to a type of `Survey`. And `Survey` 
will be a parenet entity that stores data like, `name, types, categories` e.t.c

### Project Setup

- Run `npm install` to install dependencies within the `/hyphen` directory.
- Run `npm run setup` to install dependencies for `/client` and `/server`
- Run `npm run start` to run the project
- To view UI Storybook, `cd client`, `npm run storybook`

### Todo

- Add unit test to `server/`
