Simple CRUD API to manage websites.
Fields for create/update which are all required
- Name - max length check added
- URL - format checks added such as: http://test.com
- Category (Vertical) - predefined list
- Homepage Snapshot - max length check added
- Login
- Email - check added for correct format such as: [email protected]
- Password - min length check added as well as max length
Website delete
- It is soft delete
Websites list
- List all fields
- Implemented pagination and sorting
- Visual Studio 2017 or later.
- Sql Server Express
- items in the prerequsites section should be installed
- project should be downloaded into your local machine
- to communicate with the database, the connection string should be set in appsettings.json
"ConnectionStrings": { "DefaultConnection": "data source=ExampleServerName; initial catalog=WebsiteManager; integrated security=SSPI" },
where ExampleServerName is the name of your sql server name- to retrieve your sql server name you can write in the command prompt: SQLCMD -L (this can take some time)
- open Visual Studio and type the following commands into the Package Manager Console:
- add-migration init
- update-database
- Entity Framework Core
- Entity Framework Paginate Core
- Auto Mapper
- Fluent Validation
- Swashbuckle (Swagger)
- Services - for separation of business logic
- Repository - for data-access logic
- Factory - for enhancing input data and save it to the database
- Data mapping - for populating output data from the database
Unit tests are not covering 100% of the code, they are for showcase on the key areas that need to be covered.
- Additional checking can be added for fields max and min length.
- Validation for email address for matching pattern like: [email protected]
- Validation for website url property to be as format: http://test.com
- Validation for password pattern to have symbols, letters and numbers