NET Code Test (2 Days) - Taksu
NET Code Test (2 Days) - Taksu
Work to submit
After you finish, submit your public Github link here: https://forms.gle/SEdTF3wfqpAYbDj26
Your public Github link should contain your code. Your code must contains migration and seed
data.
Please double check your link before submitting to the Google Forms.
Requirements
● Framework & Architectures
○ Using the latest .NET Core and C#
○ MySQL
○ RESTful APIs
● Use JWT Token for API authentication. The token validity = 24 hours.
● For CMS, you can use anything you are comfortable with. For example:
○ React. Use React Admin if you can (https://marmelab.com/react-admin/).
Because you can scaffold CRUD on top of your Restful API very fast.
○ ASP.NET
○ Razor
Question
The Client is an owner of car workshops. This is how his traditional business is like:
Usually, a car owner will come to the workshop with his car. Then, the workshop will diagnose
the car and suggest the services that a car owner should take, for example:
1. Change tyres
2. Fix dents
3. Change battery
4. Etc.
After the car owner agrees to the proposal, the car owner will leave the car in the workshop for a
few days while the workshop is fixing the car. The workshop will assign a few mechanics to fulfill
the jobs. Each mechanic will perform a service. When all services are done, the workshop will
call the car owner to collect the car.
When the car owner arrives, he will inspect the jobs. If he is not satisfied with the job, the
workshop needs to note the complaint and perform one or more services to address the
dissatisfaction. Again, mechanics will be assigned to perform the services.
When the car owner is satisfied with the job, he will take back the car and the workshop will
send an invoice to the car owner.
Please create a system for the workshop to automate the process above, with the following
additional requirements.
Create a RESTful API server that captures the business logic above.
1. Design the entity relationship diagram and state machine diagram.
2. For notification to the car owner and mechanics, send via SMTP email. You can use
Mailtrap for SMTP Provider
3. Write unit tests to test the logic
Create a CMS that consumes the RESTful API. With the following additional requirements:
1. Main Menu
a. Master Data
i. Car Owners
1. Name
2. Email
3. Password
ii. Mechanics
1. Name
2. Email
3. Password
iii. Services. A CRUD which allows admin to enter the services that the
workshop provides (i.e. change tyre).
1. Name
2. Price
b. Car Repair Management. The list of the cars in the workshop that are being
repaired.
i. Who the owner is
ii. When the car is brought to the workshop
iii. Services being proposed and their status
iv. The status of the repair
c. Job management. The list of jobs needs to be assigned to the mechanics
2. Car owners can login to the system and see the status of their cars.
3. Mechanics can login to the system and:
a. See the list of jobs assigned to him
b. Mark that the job is done
Notes
If you have any questions in regards to this exercise, please feel free to contact us.