Technologies: ASP .NET MVC, MS SQL, Entity Framework, Bootstrap 3, JQuery, Ninject, Owin, AspNet.Indentity, AutoMapper
Build a web application that supports the given functionality:
- Based on the entities of the subject area, create classes that describe them, observing the SOLID principles. (DI optional).
- Classes and methods must have names that reflect their functionality and must be correctly structured in the application (folders, namespaces).
- Code formatting must comply with the C# Code Conventions.
- Store information about the subject area in the database and use the Entity Framework for access. Use MS SQL (not Compact) as a DBMS.
- The application architecture should follow the MVC pattern.
- Perform event logging, that is, process information about occurring exceptions and events in the system using environmental means.
- The code must contain comments (all top-level classes, non-trivial methods and constructors).
- The data access level should be placed in a separate project.
- Implement differentiation of system user access rights to application components (minimum 3 roles).
- All input fields must have data validation.
In addition to the requirements stated above, it is more than desirable to ensure that the following requirements are met.
- coverage of business logic unit tests.
- Use event logging.
- Exception handling.
- Independent expansion of the problem statement in terms of functionality is welcome. Motor Depot Dispatcher creates Flights, which are presented in the system in the form of a list, for which it is necessary to implement the ability to sort by: flight number; flight creation date; status (open, in progress, closed, cancelled).
The driver makes an Application for the flight, in which he indicates the characteristics of the car required for the flight. The dispatcher reviews the Application and assigns a Car to the flight that meets the requirements and is in good condition. The driver makes a note about the completion of the flight and the condition of the car. The administrator has the same rights as the dispatcher, in addition he can: register drivers and dispatchers in the system; add/remove cars, edit information about cars.