Giter VIP home page Giter VIP logo

rubyremit's Introduction

RubyRemit

A simple REST API for processing online payments using different gateways.

rubyremit's People

Contributors

philipeano avatar

Stargazers

Ioan Rîpan avatar

Watchers

James Cloos avatar  avatar  avatar

rubyremit's Issues

Create .PaymentGateways project

  • Add and configure new Web API project.
  • Extract payment gateways code from .Infrastructure project into .PaymentGateways
  • Implement controller for accessing payment gateway functionality publicly

Create API documentation

  • Install and configure Swashbuckle.AspNetCore (Swagger)
  • Generate OpenAPI specification
  • Generate Swagger UI documentation
  • Update README file

Setup database

  • Install Entity Framework Core along with dependencies
  • Create SQL Server data context class in RubyRemit.Data project
  • Create new RubyRemitDB database
  • Scaffold database objects with EF Core Code-First approach

Create .Business project to handle business logic

  • Add and configure new class library project
  • Define interfaces/contracts for expected functionality
  • Implement functionality via classes
  • Extract code from .Infrastructure project into .Business project as necessary

Implement PaymentValidator service

Define PaymentValidator class to implement IPaymentValidator interface.

Implement the following methods:

  • IsValidCardNumber()
  • IsValidHolderName()
  • IsValidExpiryDate()
  • IsValidSecurityCode()
  • IsValidAmount()

Implement PaymentData service

Define PaymentData class to implement IPaymentData interface.

Implement the following methods:

  • CreatePayment()
  • GetAllPayments() (with optional sort and filter parameters)
  • GetPaymentDetails() (with paymentId parameter)
  • CheckPaymentSuccess() (with paymentId parameter)
  • CountPaymentAttempts() (with paymentId parameter)

Deploy RubyRemit v1 on Heroku

  • Publish solution in release configuration
  • Add Dockerfile and build Docker image
  • Set up hosting environment on Heroku
  • Set up SQL Server add-on on Heroku
  • Run migration on production database
  • Seed production database, if necesssary
  • Update GitHub repository with live demo link

Configure Web API project

  • Set up folder structure
  • Configure project dependencies
  • Register required services in Startup.cs for dependency injection
  • Configure Request pipeline plus error handling in Startup.cs

Create core project with data models

Define entity classes with their respective properties:

  • Payment class
  • PaymentState class

Define necessary enumeration / look-up types:

  • State enum (pending | processed | failed)

Enhance entity definitions with:

  • Data annotations
  • Relationships

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.