PRUEBA BACKEND ENGINEER
At the ACME school they need help with the management of their courses and students.
They have asked us for a program that is capable of the following:
Register a student specifying their name and age (only adults can register).
Register courses with a name, registration fee, start date, and end date.
Allow a student to contract a course, after payment, if applicable, of the registration fee
through a payment gateway.
A list of students and their courses between a range of dates.
They want something straightforward for now, so I have asked us for a class library and a test
project with xUnit (which should work the first time without requiring any extra configuration).
They do not want API or any type of DB for now, basically they have asked us for 0 external
dependencies.
However, since we will not be able to present the project live because its CEO is a very busy
person, we have been asked that the execution of the tests be sufficient to demonstrate the
correctness of the program and make it easier to present it with great fanfare at the meeting
where They will decide whether or not to continue with the project.
However, if the result convinces them, they will almost certainly start using a DB and create a
web application to expand the business. They have simply notified us of this to take it into
account follow good practices and be able to reuse this code.
To show the work, a simple .zip with the source code or a link to a file in some online storage
would be enough.
For the evaluation, elements such as: OOP, rich domain model, abstractions that allow the use
of third-party services to be postponed until the moment of their choice and facilitate testing,
as well as code prepared to persist in a database later will be taken into account.