# 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/`