andersonbernardo / crossover

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Challenge Statement

Cross-blogs is a backend blogging application written by a startup company called WritingForAll. It allows users to create / update / delete their articles, accepting comments for each article.

Notes:
- Articles have a 120 character limit for their title, and a 32k limit for their body.
- The frontend application is excluded from the current scope. It is a separate, fully-functional application handled by another team, so we do not want to modify it by performing any API modifications.

Your tasks:
- Increase unit test coverage to reach 70%, achieving more than 70% will only consume your valuable time without extra score.
- Find bugs and fix them, hint: we provided Cross-Blogs application in a good structure, so no need to spend your valuable time on structure modifications,  just focus on fixing bugs.
- Articles search endpoint is very slow.

Prerequisites:
- Any IDE
- .NET Core SDK 2.1.4
- MySQL >=5.5

=====================================
Development Environment
=====================================
MySQL:
- Cross-blogs application require a MySQL database to store it's data. Make sure to update the file "appsettings.json" file, changing the connection string named "CrossBlog" to reference your MySQL server.

Cross-blogs application:
- On any terminal move to the "crossblog" folder (the folder containing the "crossblog.csproj" file) and execute these commands:

dotnet restore
dotnet build
dotnet ef database update
dotnet run

- The application will be listening on http://localhost:5000
- Now you can call the api using any tool, like Postman, Curl, etc (See "Some Curl command examples" section)

=====================================
To run unit tests
=====================================
- On any terminal move to the "crossblog.tests" folder (the folder containing the "crossblog.tests.csproj" file) and execute these commands:

dotnet restore
dotnet build
dotnet test

- To check code coverage, execute the batch script:

coverage.bat

=====================================
Some Curl command examples
=====================================
curl -i -H "Content-Type: application/json" -X POST -d "{'title':'How to use docker', 'content':'xyz', 'date': '2018-03-10', 'published':false}" http://localhost:5000/articles
curl -i -H "Content-Type: application/json" http://localhost:5000/articles/search?title=doc

About


Languages

Language:C# 98.9%Language:Batchfile 1.1%