Code Monkey home page Code Monkey logo

tekana-ewallet-be's Introduction

Tekana-eWallet CI/CD pipeline

Tekana eWallet Project

This is a backend infrastructure of an eWallet platform that is used by people worlwide to transfer money

Backend Design Strategy

Designed and documented the backend design strategy that will be used and followed through this project, with well detailed information of what is expected and be done to launch it in production, be used to the customers.

Attached to this section a link to the desing document

Design Strategy

Deployment

Backend API

  https://tekanaewallet.herokuapp.com/api/v1

API Documentation (Swagger)

 https://tekanaewallet.herokuapp.com/swagger-ui/index.html

Postman Documentation

  https://documenter.getpostman.com/view/19575892/2s8Z73yWP3

Database Design

Database Design Screenshot

API endpoints

HTTP Method Endpoint Description
POST /api/v1/auth/register Endpoint to create new user and account
POST /api/v1/auth/login Endpoint to login user in the application
GET /api/v1/auth/profile Endpoint to get user's detail informations
GET /api/v1/auth/users Endpoint to get all users in the application (only accessible by ADMIN)
GET /api/v1/account/balance Endpoint to view balance amount on user's account
POST /api/v1/account/deposit Endpoint to deposit money on user's account
POST /api/v1/account/withdraw Endpoint to withdraw money on user's account
POST /api/v1/account/transfer Endpoint to transfer money from one account to another
GET /api/v1/transaction Endpoint to get all transactions made on user's account like deposit, withdraw and transfer
GET /api/v1/transaction/{transaction_id} Endpoint to get one transaction made on user's account
POST /api/v1/role?userId={user_id}&roleId={role_id} Endpoint to giver a user specific role (only accessible by ADMIN)
PUT /api/v1/role?userId={user_id}&roleId={role_id} Endpoint to remove a specific role from user (only accessible by ADMIN)

Features

  • Sign in / Login
  • Deposit Money on Account
  • Withdraw Money on Account
  • Transfer Money on other Account
  • View all Transactions made
  • View one Transaction
  • Add roles
  • remove roles
  • validations

Test API

Seed Data

To test those APIs you can use one of the deployment links provide above. There are some seed data provided to make this easy, you can use them to login and use their credentials to test out all the application features.

Entity Data Description
User Entity {email: [email protected], password: #Password123} This user has role USER, you can use them to test our almost all features
User Entity {email: [email protected], password: #Password567} This user has role ADMIN, you can use them to test out admin credential feature
Role Entity {id: 1, name: USER} Available Role credentials, you can use this id to grant a role USER to a person
Role Entity {id: 2, name: ADMIN} Available Role credentials, you can use this id to grant a role ADMIN to a person

Swagger Authentication

Testing Authenticated routes in Swagger you need to add the token in the header. You need to first proceed it with Bearer <token>, this is very important because you won't be authenticated without following that pattern. Swagger Auth

Tech Stack

Server: Java, Spring Boot

Database: PostgreSQL

Testing: JUnit, MockMvc, RestTemplate, Test Containers

CI/CD: GitHub Actions

Authors

tekana-ewallet-be's People

Contributors

gabin-ishimwe avatar

Watchers

James Cloos avatar

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.