Coder Social home page Coder Social logo

cloudaudition's Introduction

Hi there ๐Ÿ‘‹

cloudaudition's People

Contributors

renehernandez avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

ffoysal

cloudaudition's Issues

Add palindrome logic for messages

As part of the application requirements, the API needs to be to provide information about the messages, in particular, whether a given message is a palindrome. As part of the design, the implementer needs to decide whether to store the information on the database or always calculate the value at runtime.

The following requirements need to be addressed as part of the implementation:

  • When the API returns a message, as part of the returning JSON object it needs to include a field saying whether a message is palindrome or not.

Support running on docker and docker-compose

As a prerequisite to support postgres database, the application should be adapted to run on docker. This will allows us to avoid installing postgres on our system and on the Azure Devops nodes,

The following requirements should be addressed as part of the implementation:

  • Dockerfile to generate an image for the CloudAuditionApi
  • Implement functionality for the build process to run on docker

Cannot create new message through API without providing id

The initial validation rules for the Message model include verification that the Id must be greater than zero. This results in an invalid workflow where an API consumer will need to submit an Id as part of the request and thus, the request could fail if the Id is already in use.

The following requirements should be addressed as part of the implementation:

  • An automated confirmation that a message can be created (and saved in the db) by just providing a valid content

Deploy build image to docker hub

As part of the pipeline process, a docker image of the API will be published to hub docker.

The following requirements should be addressed as part of the implementation:

  • Versioning of the image containing the Assembly version of the application as well as the build number from Azure Devops (allows differentiation from different builds of the same version)
  • Handling login information for docker should be store in Azure Devops

Combine Message and MessageValidator on the same class file

Instead of having separate namespaces for Models and Validators within the API projects, it is better for readability to have them together under the Models namespace. So each model file will have both the model definition and the validator definition.

Add details to README

As part of the global Readme the following details should be added:

  • Status badge from Azure-Pipeline
  • build process from scratch

For the API component:

  • Installation process using docker
  • Architecture diagram

Integrate Swagger for help and API documentation generation

In order to automate the process of documenting the API, we will integrate with the Swagger/OpenAPI standard. With AspNetCore, we can either explore using Swashbuckle or Nswag.

The following requirements need to be addressed as part of the implementation:

  • Integrate Swagger framework into API system
  • Add help and documentation generation as part of the pipeline

Add CommandLine application

To facilitate interaction with the API, a command line application should be implemented.

he following requirements should be addressed as part of the implementation:

  • Use CommandLineParser to abstract the parsing and command generation, including help
  • Implement abstraction over the API to facilitate testing
  • Add unit tests
  • Add functional testing against the API

Configure Postgres Database Provider for API

Currently, the controller generates at least 1 message on memory using the InMemory process option while running the API. As part of the implementations of this issue, the API will be configured to talk to a postgres backend.

The following requirements need to be addressed as part of the implementation:

  • Configure API to use postgres as database
  • Define remaining CRUD methods in the controllers (e.g create/delete, etc)
  • Add initial integration tests showing interaction between the controller layer and the database

Add initial structure for CloudAuditionApi

Summary

Create initial project for CloudAuditionAPI using dotnet core 2.2 and webapi template. Besides the project structure it needs to address the following requirements:

  • Initial unit tests for the Message class
  • CI/CD integration with AzureDevops

Acceptance criteria

  • WebAPI application is compiled successfully
  • Pull request automatically runs on AzureDevops and validate the compilation process as well as the initial tests.

Introduce interface-based DI between controller and database access

Currently, the MessageController receives directly an instance of the MessageContext. This produces a strong coupling between different layers and thus, reduces the ability of creating unit tests for the MessageController object itself.

The following requirements need to be addressed as part of the implementation:

  • Introduce a new interface-based abstraction between MessageController and MessageContent
  • Add unit tests validating MessagesController methods

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.