# App Developer
## Requirements
* HTML5
* CSS3
* Javascript(ECMAScript 2018)
* Typescript
* Angular 6+ (or other similar framework like VueJS, ReactJS, etc.)
* Ionic 3+ (or other PWA frameworks)
* Git operation
* NPM operation
* Pass skill test (See Appendix. A)
## Bonus
* SCSS
* Angular CLI
* Ionic CLI
# Server Developer
## Requirements
* Javascript(ECMAScript 2018)
* Node.js 8+
* Express 4+
* MySQL 5.7+
* Concept of RESTful API
* Git operation
* NPM operation
## Bonus
* Typescript
* AWS Elastic Beanstalk
* Sequelize (MySQL ORM library in Node.js)
* Swagger
# Website Developer
## Requirements
* HTML5
* CSS3
* Javascript(ECMAScript 2018)
* Typescript
* Angular 6+ (or other similar framework like VueJS, ReactJS, etc.)
* Git operation
* NPM operation
* Pass skill test (See Appendix. A)
## Bonus
* SCSS
* Angular CLI
* Wordpress development
# Appendix A - Front-end skill test
**If you have already done other similar product(s), you could skip the following tasks and provide those products instead**.
To test your skill and knowledge of being a front-end developer, Here is a task.
In this task, you are expected to:
- use some or all required skills and knowledge (e.g. HTML5, CSS3, Javascript(ECMAScript 2018), Angular 6+/similar framework, Git operation, etc.)
- follow instructions carefully
Also, as bonus, you are expected to:
- implement readable and logical coding style - *we will review your source code*
## Use case
You are going to implement a page of a timer.
In full version, users are allowed to create a list of missions. Each mission lasts for a period of time.
When time is over, current mission is removed, then go on to next mission, reset the timer, and repeat.
In this task, you will only need to implement **one page** with **two features**, as described in "Instructions" session. Any extra work does not take into account.
## Instructions
1. Prepare a **Github repository** (or other repository which is online accessible).
2. Implement the following UI:

*(If this is not clear enough, feel free to check details from here: https://xd.adobe.com/spec/4f6eb081-4411-4b48-69ae-34b92df3f3e4-395f/. You should see several pages, but you only need to finish one page, as shown above.)*
3. Implement the feature of **"ADD A NEW MISSION..."** (top-left inputbox):
* Allow to type in name of the mission
* name is allowed to have 8-32 characters.
* Allow to, by pressing "+" button on the right of the inputbox, add the new mission to the bottom-left list, displaying the mission name.
* Also clear the inputbox.
4. Implement the feature of **timer**:
* Allow to click the start button(▶️) to activate timer.
* replace the start button with a pause button(❚❚)
* Allow to click the pause button(❚❚) to deactivate timer.
* replace the pause button with a start button(▶️)
* When the timer reaches zero, deactivate timer and display an alert box to tell.
* timer never goes below zero
* When timer is NOT active:
* show start button(▶️)
* When timer is active:
* show pause button(❚❚)
* For every second, time string displayed on the left decreases by 1 second.
5. Commit your works, and push your commits to the repository prepared in step 1.
6. Send public accessible repository link along with your other application materials to us.