-
Coin Locker has only 1 locker and 12 units. There are 3 sizes :
S (#1, #4, #7, #10), M (#2, #5, #8, #11) and L (#3, #6, #9, #12)
.This is a simulation of coin locker (Ex. Size of
#1
isS
and size of#12
isL
)S M L 1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ 1️⃣0️⃣ 1️⃣1️⃣ 1️⃣2️⃣ -
The charge of locker usage (Based on unit size).
🕐 first 60 minutes 🕑 next minutes S 50 THB 25 THB M 100 THB 50 THB L 200 THB 100 THB -
The user can insert coin:
1 THB, 2 THB, 5 THB, and 10 THB
-
The user can insert bill:
20 THB, 50 THB, 100 THB, 500 THB and 1000 THB
-
Can't select the same locker with other users in
Realtime
. (User A
select unit of#1
on another page thenUser B
will see a unit of#1
, that is not available to select without refresh page.) -
👍 Design User Interface (UI) of coin locker based on good user experience (UX).
-
👍 Focus on good code quality.
- Readability, consistency — how easy it is to read and understand sections of the code; this includes code clarity, simplicity, and documentation.
- Predictability, reliability, and robustness — software behavior should be predictable, and not prone to hidden bugs.
- Maintainability and extensibility — fixing, updating and improving software should be as simple as possible, not inherently complex.
-
Technologies
- Frontend : Vue or Nuxt.js
- CSS Framework : Bootstrap or Vuetify
- Backend (RESTful API or GraphQL) : AdonisJS or Node.js
- Database : mariaDB or MongoDB (We recommend MongoDB Atlas)
-
Bonus!!
- Unit and Integration testing such as
- UI testing with automate testing tools such as
-
Scoring criteria
Task Must have Score Frontend ✅ 35 Backend ✅ 35 Database ✅ 10 Deployment ✅ 10 Bonus ⬜ 10
Test cases
Story | Unit selected | Can select? | Duration of deposit (Minutes) | Insert | Charge | Change | Got item back? | |
---|---|---|---|---|---|---|---|---|
1 | User select unit of #1 and insert 1,000 baht for charge |
1 | true | 60 | 1000 | 50 | 500 x 1, 100 x 4, 50 x 1 | true |
2 | User select unit of #1 and insert 100 baht for charge |
1 | true | 61 | 100 | 75 | 20 x 1, 5 x 1 | true |
3 | User select unit of #2 and insert 100 baht for charge |
2 | true | 120 | 100 | 150 | 100 x 1 | false |
4 | User select unit of #2 but this unit has been used by another user |
2 | false | - | - | - | - | - |
5 | User select unit of #12 and insert 400 baht for charge |
12 | true | 145 | 400 | 400 | 0 | true |
- Fork this GitHub project.
- Open
issue
feature in your repository (Options > Features > Checked on Issues) #Reference - Put your code in the
exercise
folder. - Publish your project on hosting, cloud or something that we can play it :) (We recommend DigitalOcean, Firebase Hosting or Heroku)
Open your issue from this link below
https://github.com/igeargeek/fullstackdev-fulltime-challenge/issues