HashCash is a gradation project which aims to build a payment gateway for small merchants to start accepting payment really easy throw API integration without worrying about any PCI requirements and merchant account details.
We are focusing on implementing the actual service and APIs the merchant is going to use and the PCI requirements that comes with it not focusing on the system as a whole.
see wiki pages for more info.
Payment-Gateway--Graduation-project
βββ apikey-manager
βΒ Β βββ docker
βΒ Β βΒ Β βββ Dockerfile-dev
βΒ Β βΒ Β βββ Dockerfile-prod
βΒ Β βββ package.json
βΒ Β βββ package-lock.json
βΒ Β βββ src
βΒ Β βΒ Β βββ app.ts
βΒ Β βΒ Β βββ events
βΒ Β βΒ Β βΒ Β βββ eventTypes
βΒ Β βΒ Β βΒ Β βΒ Β βββ APIKeyVerifiedEvent.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ verifyAPIKeyEvent.ts
βΒ Β βΒ Β βΒ Β βββ listeners
βΒ Β βΒ Β βΒ Β βΒ Β βββ emailVerifiedListener.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ merchantActivationListener.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ verifyAPIKeyListener.ts
βΒ Β βΒ Β βΒ Β βββ publishers
βΒ Β βΒ Β βΒ Β βββ APIKeyVerifiedPublisher.ts
βΒ Β βΒ Β βββ index.ts
βΒ Β βΒ Β βββ models
βΒ Β βΒ Β βΒ Β βββ keys.ts
βΒ Β βΒ Β βββ nats
βΒ Β βΒ Β βΒ Β βββ nats-wrapper.ts
βΒ Β βΒ Β βββ routes
βΒ Β βΒ Β βΒ Β βββ changeMode.ts
βΒ Β βΒ Β βΒ Β βββ getKey.ts
βΒ Β βΒ Β βΒ Β βββ getMode.ts
βΒ Β βΒ Β βββ types
βΒ Β βΒ Β βΒ Β βββ queueGroupName.ts
βΒ Β βΒ Β βββ utils
βΒ Β βΒ Β βββ generateKey.ts
βΒ Β βββ tsconfig.json
βββ auth
βΒ Β βββ config
βΒ Β βΒ Β βββ dev.ts
βΒ Β βΒ Β βββ keys.ts
βΒ Β βΒ Β βββ prod.ts
βΒ Β βββ docker
βΒ Β βΒ Β βββ Dockerfile-dev
βΒ Β βΒ Β βββ Dockerfile-prod
βΒ Β βββ package.json
βΒ Β βββ package-lock.json
βΒ Β βββ src
βΒ Β βΒ Β βββ app.ts
βΒ Β βΒ Β βββ events
βΒ Β βΒ Β βΒ Β βββ listeners
βΒ Β βΒ Β βΒ Β βΒ Β βββ merchantActivationListener.ts
βΒ Β βΒ Β βΒ Β βββ publishers
βΒ Β βΒ Β βΒ Β βββ emailVerifiedPublisher.ts
βΒ Β βΒ Β βΒ Β βββ userCreatedPublisher.ts
βΒ Β βΒ Β βΒ Β βββ userForgotPasswordPublisher.ts
βΒ Β βΒ Β βΒ Β βββ userLoggingInPublisher.ts
βΒ Β βΒ Β βββ helpers
βΒ Β βΒ Β βΒ Β βββ runInDevelopment.ts
βΒ Β βΒ Β βββ index.ts
βΒ Β βΒ Β βββ middlewares
βΒ Β βΒ Β βΒ Β βββ rquireAuthforcurrent.ts
βΒ Β βΒ Β βΒ Β βββ twoWayAuth.ts
βΒ Β βΒ Β βββ models
βΒ Β βΒ Β βΒ Β βββ loginSession.ts
βΒ Β βΒ Β βΒ Β βββ user.ts
βΒ Β βΒ Β βββ nats
βΒ Β βΒ Β βΒ Β βββ __mocks__
βΒ Β βΒ Β βΒ Β βΒ Β βββ nats-wrapper.ts
βΒ Β βΒ Β βΒ Β βββ nats-wrapper.ts
βΒ Β βΒ Β βββ routes
βΒ Β βΒ Β βΒ Β βββ checkPassword.ts
βΒ Β βΒ Β βΒ Β βββ clearSessions.ts
βΒ Β βΒ Β βΒ Β βββ currentUser.ts
βΒ Β βΒ Β βΒ Β βββ deactivateMerchant.ts
βΒ Β βΒ Β βΒ Β βββ enableTwoFactorAuth.ts
βΒ Β βΒ Β βΒ Β βββ forgotPassword.ts
βΒ Β βΒ Β βΒ Β βββ getUsers.ts
βΒ Β βΒ Β βΒ Β βββ getUser.ts
βΒ Β βΒ Β βΒ Β βββ login.ts
βΒ Β βΒ Β βΒ Β βββ me.ts
βΒ Β βΒ Β βΒ Β βββ otpRegister.ts
βΒ Β βΒ Β βΒ Β βββ otpResend.ts
βΒ Β βΒ Β βΒ Β βββ refreshAccess.ts
βΒ Β βΒ Β βΒ Β βββ resetPassword.ts
βΒ Β βΒ Β βΒ Β βββ signout.ts
βΒ Β βΒ Β βΒ Β βββ signup.ts
βΒ Β βΒ Β βΒ Β βββ __test__
βΒ Β βΒ Β βΒ Β βΒ Β βββ checkPassword.test.ts.old
βΒ Β βΒ Β βΒ Β βΒ Β βββ login.test.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ otpRegister.test.ts.old
βΒ Β βΒ Β βΒ Β βΒ Β βββ signup.test.ts.old
βΒ Β βΒ Β βΒ Β βββ verifyEmail.ts
βΒ Β βΒ Β βββ test
βΒ Β βΒ Β βΒ Β βββ setup.ts
βΒ Β βΒ Β βββ types
βΒ Β βΒ Β βΒ Β βββ queueGroupName.ts
βΒ Β βΒ Β βΒ Β βββ roles.ts
βΒ Β βΒ Β βββ utils
βΒ Β βΒ Β βββ generateFackUsers.ts
βΒ Β βΒ Β βββ jwtGenerator.ts
βΒ Β βΒ Β βββ otpGenerator.ts
βΒ Β βΒ Β βββ passwordManger.ts
βΒ Β βΒ Β βββ userAgentParser.ts
βΒ Β βββ tsconfig.json
βββ checkout
βΒ Β βββ docker
βΒ Β βΒ Β βββ Dockerfile-dev
βΒ Β βΒ Β βββ Dockerfile-prod
βΒ Β βββ package.json
βΒ Β βββ package-lock.json
βΒ Β βββ src
βΒ Β βΒ Β βββ app.ts
βΒ Β βΒ Β βββ events
βΒ Β βΒ Β βΒ Β βββ eventsTypes
βΒ Β βΒ Β βΒ Β βΒ Β βββ APIKeyVerifiedEvent.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ checkoutSessionCreated.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ verifyAPIKeyEvent.ts
βΒ Β βΒ Β βΒ Β βββ listeners
βΒ Β βΒ Β βΒ Β βΒ Β βββ APIKeyVerifiedListeners.ts
βΒ Β βΒ Β βΒ Β βββ publishers
βΒ Β βΒ Β βΒ Β βββ checkoutSessionCreatedPublisher.ts
βΒ Β βΒ Β βΒ Β βββ verifyAPIKeyPublisher.ts
βΒ Β βΒ Β βββ index.ts
βΒ Β βΒ Β βββ models
βΒ Β βΒ Β βΒ Β βββ checkoutSession.ts
βΒ Β βΒ Β βΒ Β βββ customer.ts
βΒ Β βΒ Β βΒ Β βββ item.ts
βΒ Β βΒ Β βββ nats
βΒ Β βΒ Β βΒ Β βββ nats-wrapper.ts
βΒ Β βΒ Β βββ routes
βΒ Β βΒ Β βΒ Β βββ createCheckoutSession.ts
βΒ Β βΒ Β βΒ Β βββ getCheckoutSeeion.ts
βΒ Β βΒ Β βΒ Β βββ init.ts
βΒ Β βΒ Β βββ types
βΒ Β βΒ Β βΒ Β βββ chckoutStatus.ts
βΒ Β βΒ Β βΒ Β βββ queueGroupName.ts
βΒ Β βΒ Β βββ validators
βΒ Β βΒ Β βββ validateCreateCheckoutSession.ts
βΒ Β βββ tsconfig.json
βββ client
βΒ Β βββ angular.json
βΒ Β βββ Dockerfile
βΒ Β βββ karma.conf.js
βΒ Β βββ nginx.conf
βΒ Β βββ package.json
βΒ Β βββ package-lock.json
βΒ Β βββ README.md
βΒ Β βββ src
βΒ Β βΒ Β βββ app
βΒ Β βΒ Β βΒ Β βββ app.component.css
βΒ Β βΒ Β βΒ Β βββ app.component.html
βΒ Β βΒ Β βΒ Β βββ app.component.spec.ts
βΒ Β βΒ Β βΒ Β βββ app.component.ts
βΒ Β βΒ Β βΒ Β βββ app.module.ts
βΒ Β βΒ Β βΒ Β βββ app-routing.module.ts
βΒ Β βΒ Β βΒ Β βββ checkout
βΒ Β βΒ Β βΒ Β βΒ Β βββ checkout.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βββ checkout.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βββ checkout.component.spec.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ checkout.component.ts
βΒ Β βΒ Β βΒ Β βββ forget-password
βΒ Β βΒ Β βΒ Β βΒ Β βββ forget-password.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βββ forget-password.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βββ forget-password.component.spec.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ forget-password.component.ts
βΒ Β βΒ Β βΒ Β βββ guards
βΒ Β βΒ Β βΒ Β βΒ Β βββ auth.guard.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ login.guard.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ verify-email.guard.ts
βΒ Β βΒ Β βΒ Β βββ home
βΒ Β βΒ Β βΒ Β βΒ Β βββ Components
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ activate-account
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ activate-account.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ activate-account.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ activate-account.component.spec.ts
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ activate-account.component.ts
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ activation-form
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ activation-form.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ activation-form.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ activation-form.component.spec.ts
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ activation-form.component.ts
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ declined
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ declined.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ declined.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ declined.component.spec.ts
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ declined.component.ts
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ pending
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ pending.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ pending.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ pending.component.spec.ts
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ pending.component.ts
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ navbar
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ navbar.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ navbar.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ navbar.component.spec.ts
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ navbar.component.ts
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ profile
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ profile.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ profile.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ profile.component.spec.ts
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ profile.component.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ home.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βββ home.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βββ home.component.spec.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ home.component.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ home.module.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ home-routing.module.ts
βΒ Β βΒ Β βΒ Β βββ login
βΒ Β βΒ Β βΒ Β βΒ Β βββ login.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βββ login.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βββ login.component.spec.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ login.component.ts
βΒ Β βΒ Β βΒ Β βββ Models
βΒ Β βΒ Β βΒ Β βΒ Β βββ errors.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ types.ts
βΒ Β βΒ Β βΒ Β βββ not-found
βΒ Β βΒ Β βΒ Β βΒ Β βββ not-found.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βββ not-found.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βββ not-found.component.spec.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ not-found.component.ts
βΒ Β βΒ Β βΒ Β βββ primeng
βΒ Β βΒ Β βΒ Β βΒ Β βββ primeng.module.ts
βΒ Β βΒ Β βΒ Β βββ reset-password
βΒ Β βΒ Β βΒ Β βΒ Β βββ reset-password.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βββ reset-password.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βββ reset-password.component.spec.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ reset-password.component.ts
βΒ Β βΒ Β βΒ Β βββ Services
βΒ Β βΒ Β βΒ Β βΒ Β βββ auth.service.spec.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ auth.service.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ refresh-token.service.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ shared
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ handle-errors.service.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ user.service.ts
βΒ Β βΒ Β βΒ Β βββ shared
βΒ Β βΒ Β βΒ Β βΒ Β βββ error
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ error.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ error.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ error.component.spec.ts
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ error.component.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ interceptors
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ header.interceptor.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ loading
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ component
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ comp-loading
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ comp-loading.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ comp-loading.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ comp-loading.component.ts
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ html
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ loading.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ loading.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ loading.component.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ utils
βΒ Β βΒ Β βΒ Β βΒ Β βββ cleanObj.ts
βΒ Β βΒ Β βΒ Β βββ signup
βΒ Β βΒ Β βΒ Β βΒ Β βββ signup.component.css
βΒ Β βΒ Β βΒ Β βΒ Β βββ signup.component.html
βΒ Β βΒ Β βΒ Β βΒ Β βββ signup.component.spec.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ signup.component.ts
βΒ Β βΒ Β βΒ Β βββ verify-email
βΒ Β βΒ Β βΒ Β βββ verify-email.component.css
βΒ Β βΒ Β βΒ Β βββ verify-email.component.html
βΒ Β βΒ Β βΒ Β βββ verify-email.component.spec.ts
βΒ Β βΒ Β βΒ Β βββ verify-email.component.ts
βΒ Β βΒ Β βββ assets
βΒ Β βΒ Β βΒ Β βββ images
βΒ Β βΒ Β βΒ Β βββ declined.png
βΒ Β βΒ Β βΒ Β βββ error.png
βΒ Β βΒ Β βΒ Β βββ haeder.png
βΒ Β βΒ Β βΒ Β βββ logo.png
βΒ Β βΒ Β βΒ Β βββ not-found.png
βΒ Β βΒ Β βΒ Β βββ otp.jpg
βΒ Β βΒ Β βΒ Β βββ otp.png
βΒ Β βΒ Β βΒ Β βββ pending.png
βΒ Β βΒ Β βββ environments
βΒ Β βΒ Β βΒ Β βββ environment.prod.ts
βΒ Β βΒ Β βΒ Β βββ environment.ts
βΒ Β βΒ Β βββ favicon.ico
βΒ Β βΒ Β βββ index.html
βΒ Β βΒ Β βββ main.ts
βΒ Β βΒ Β βββ polyfills.ts
βΒ Β βΒ Β βββ proxy.conf.json
βΒ Β βΒ Β βββ styles.css
βΒ Β βΒ Β βββ test.ts
βΒ Β βββ tsconfig.app.json
βΒ Β βββ tsconfig.json
βΒ Β βββ tsconfig.spec.json
βββ common
βΒ Β βββ package.json
βΒ Β βββ package-lock.json
βΒ Β βββ src
βΒ Β βΒ Β βββ errors
βΒ Β βΒ Β βΒ Β βββ badRequestError.ts
βΒ Β βΒ Β βΒ Β βββ customError.ts
βΒ Β βΒ Β βΒ Β βββ forbiddenError.ts
βΒ Β βΒ Β βΒ Β βββ InternalServerError.ts
βΒ Β βΒ Β βΒ Β βββ notAuthorizedError.ts
βΒ Β βΒ Β βΒ Β βββ notFoundError.ts
βΒ Β βΒ Β βΒ Β βββ requestValidationError.ts
βΒ Β βΒ Β βΒ Β βββ types
βΒ Β βΒ Β βΒ Β βββ errorCodes.ts
βΒ Β βΒ Β βββ events
βΒ Β βΒ Β βΒ Β βββ eventTypes
βΒ Β βΒ Β βΒ Β βΒ Β βββ emailVerifiedEvent.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ forgotPasswordEvent.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ merchantActivationEvent.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ userCreatedEvent.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ userLoggingInEvent.ts
βΒ Β βΒ Β βΒ Β βββ listeners
βΒ Β βΒ Β βΒ Β βΒ Β βββ listener.ts
βΒ Β βΒ Β βΒ Β βββ publishers
βΒ Β βΒ Β βΒ Β βΒ Β βββ publisher.ts
βΒ Β βΒ Β βΒ Β βββ Subjects.ts
βΒ Β βΒ Β βββ index.ts
βΒ Β βΒ Β βββ middlewares
βΒ Β βΒ Β βΒ Β βββ errorHandler.ts
βΒ Β βΒ Β βΒ Β βββ requireAuth.ts
βΒ Β βΒ Β βΒ Β βββ restrictTo.ts
βΒ Β βΒ Β βΒ Β βββ validateRequest.ts
βΒ Β βΒ Β βββ models
βΒ Β βΒ Β βΒ Β βββ events.ts
βΒ Β βΒ Β βββ types
βΒ Β βΒ Β βΒ Β βββ modes.ts
βΒ Β βΒ Β βΒ Β βββ Payload.ts
βΒ Β βΒ Β βΒ Β βββ roles.ts
βΒ Β βΒ Β βββ utils
βΒ Β βΒ Β βββ APIFilter.ts
βΒ Β βΒ Β βββ decrypt.ts
βΒ Β βΒ Β βββ encrypt.ts
βΒ Β βΒ Β βββ handlerFactory.ts
βΒ Β βΒ Β βββ jwtGenerator.ts
βΒ Β βΒ Β βββ passwordManger.ts
βΒ Β βΒ Β βββ security.ts
βΒ Β βΒ Β βββ sendSuccess.ts
βΒ Β βββ tsconfig.json
βββ customer
βΒ Β βββ docker
βΒ Β βΒ Β βββ Dockerfile-dev
βΒ Β βΒ Β βββ Dockerfile-prod
βΒ Β βββ package.json
βΒ Β βββ package-lock.json
βΒ Β βββ src
βΒ Β βΒ Β βββ app.ts
βΒ Β βΒ Β βββ index.ts
βΒ Β βΒ Β βββ nats
βΒ Β βΒ Β βββ nats-wrapper.ts
βΒ Β βββ tsconfig.json
βββ emailing
βΒ Β βββ docker
βΒ Β βΒ Β βββ Dockerfile-dev
βΒ Β βΒ Β βββ Dockerfile-prod
βΒ Β βββ package.json
βΒ Β βββ package-lock.json
βΒ Β βββ src
βΒ Β βΒ Β βββ emails
βΒ Β βΒ Β βΒ Β βββ emails.ts
βΒ Β βΒ Β βββ events
βΒ Β βΒ Β βΒ Β βββ listeners
βΒ Β βΒ Β βΒ Β βββ merchantActivationListener.ts
βΒ Β βΒ Β βΒ Β βββ merchantCreatedListener.ts
βΒ Β βΒ Β βΒ Β βββ merchantForgotPasswordListener.ts
βΒ Β βΒ Β βΒ Β βββ userLoggingInListener.ts
βΒ Β βΒ Β βββ index.ts
βΒ Β βΒ Β βββ nats
βΒ Β βΒ Β βΒ Β βββ nats-wrapper.ts
βΒ Β βΒ Β βββ types
βΒ Β βΒ Β βΒ Β βββ queueGroupName.ts
βΒ Β βΒ Β βββ views
βΒ Β βΒ Β βββ emails
βΒ Β βΒ Β βββ applicationApproved.pug
βΒ Β βΒ Β βββ applicationDeclined.pug
βΒ Β βΒ Β βββ baseEmail.pug
βΒ Β βΒ Β βββ otp-login.pug
βΒ Β βΒ Β βββ otp-signup.pug
βΒ Β βΒ Β βββ passwordReset.pug
βΒ Β βΒ Β βββ _style.pug
βΒ Β βΒ Β βββ welcome.pug
βΒ Β βββ tsconfig.json
βββ Images
βΒ Β βββ Logo
βΒ Β βββ Asset 22.svg
βΒ Β βββ Asset 23.svg
βΒ Β βββ Asset logo 1 2.svg
βΒ Β βββ Asset logo 2 2.svg
βΒ Β βββ icon 10.svg
βββ infra
βΒ Β βββ k8s
βΒ Β βΒ Β βββ apikey-manager-depl.yaml
βΒ Β βΒ Β βββ apikey-manager-mongo-depl.yaml
βΒ Β βΒ Β βββ authentication-depl.yaml
βΒ Β βΒ Β βββ authentication-mongo-depl.yaml
βΒ Β βΒ Β βββ checkout-depl.yaml
βΒ Β βΒ Β βββ checkout-mongo-depl.yaml
βΒ Β βΒ Β βββ customer-depl.yaml
βΒ Β βΒ Β βββ customer-mongo-depl.yaml
βΒ Β βΒ Β βββ emailing-depl.yaml
βΒ Β βΒ Β βββ kms-depl.yaml
βΒ Β βΒ Β βββ kms-mongo-depl.yaml
βΒ Β βΒ Β βββ manage-business-depl.yaml
βΒ Β βΒ Β βββ manage-businessmongo-depl.yaml
βΒ Β βΒ Β βββ nats-depl.yaml
βΒ Β βΒ Β βββ payment-depl.yaml
βΒ Β βΒ Β βββ payment-mongo-depl.yaml
βΒ Β βΒ Β βββ tokenization-depl.yaml
βΒ Β βΒ Β βββ tokenization-mongo-depl.yaml
βΒ Β βββ k8s-accounts
βΒ Β βΒ Β βββ admin.yaml
βΒ Β βββ k8s-dev
βΒ Β βΒ Β βββ ingress-srv.yaml
βΒ Β βΒ Β βββ mongo-authentication-nodePort.yaml
βΒ Β βΒ Β βββ mongo-kms-nodeport.yaml
βΒ Β βββ k8s-prod
βΒ Β βββ client-deply.yaml
βΒ Β βββ ingress-srv.yaml
βββ kms
βΒ Β βββ docker
βΒ Β βΒ Β βββ Dockerfile-dev
βΒ Β βΒ Β βββ Dockerfile-prod
βΒ Β βββ package.json
βΒ Β βββ package-lock.json
βΒ Β βββ src
βΒ Β βΒ Β βββ app.ts
βΒ Β βΒ Β βββ events
βΒ Β βΒ Β βΒ Β βββ publishers
βΒ Β βΒ Β βΒ Β βββ userLoggingInPublisher.ts
βΒ Β βΒ Β βββ helpers
βΒ Β βΒ Β βΒ Β βββ runInDevelopment.ts
βΒ Β βΒ Β βββ index.ts
βΒ Β βΒ Β βββ middlewares
βΒ Β βΒ Β βΒ Β βββ protect.ts
βΒ Β βΒ Β βββ models
βΒ Β βΒ Β βΒ Β βββ admin.ts
βΒ Β βΒ Β βΒ Β βββ events.ts.old
βΒ Β βΒ Β βΒ Β βββ key.ts
βΒ Β βΒ Β βΒ Β βββ loginSession.ts
βΒ Β βΒ Β βΒ Β βββ tokens.ts
βΒ Β βΒ Β βββ nats
βΒ Β βΒ Β βΒ Β βββ __mocks__
βΒ Β βΒ Β βΒ Β βΒ Β βββ nats-wrapper.ts
βΒ Β βΒ Β βΒ Β βββ nats-wrapper.ts
βΒ Β βΒ Β βββ routes
βΒ Β βΒ Β βΒ Β βββ dataEncryptKey.ts
βΒ Β βΒ Β βΒ Β βββ decryptDataEncryptKey.ts
βΒ Β βΒ Β βΒ Β βββ deleteKey.ts
βΒ Β βΒ Β βΒ Β βββ deleteToken.ts
βΒ Β βΒ Β βΒ Β βββ generateMaster.ts
βΒ Β βΒ Β βΒ Β βββ getKeys.ts
βΒ Β βΒ Β βΒ Β βββ getKey.ts
βΒ Β βΒ Β βΒ Β βββ getServiceAccessToken.ts
βΒ Β βΒ Β βΒ Β βββ getTokens.ts
βΒ Β βΒ Β βΒ Β βββ login.ts
βΒ Β βΒ Β βΒ Β βββ otpRegister.ts
βΒ Β βΒ Β βββ utils
βΒ Β βΒ Β βββ decrypt.ts
βΒ Β βΒ Β βββ encrypt.ts
βΒ Β βΒ Β βββ generateKey.ts
βΒ Β βΒ Β βββ jwtGenerator.ts
βΒ Β βΒ Β βββ otpGenerator.ts
βΒ Β βΒ Β βββ userAgentParser.ts
βΒ Β βββ tsconfig.json
βββ LICENSE
βββ manage-business
βΒ Β βββ docker
βΒ Β βΒ Β βββ Dockerfile-dev
βΒ Β βΒ Β βββ Dockerfile-prod
βΒ Β βββ package.json
βΒ Β βββ package-lock.json
βΒ Β βββ src
βΒ Β βΒ Β βββ app.ts
βΒ Β βΒ Β βββ events
βΒ Β βΒ Β βΒ Β βββ listeners
βΒ Β βΒ Β βΒ Β βΒ Β βββ emailVerifiedListener.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ queueGroupName.ts
βΒ Β βΒ Β βΒ Β βββ publishers
βΒ Β βΒ Β βΒ Β βββ merchantActivatedPublisher.ts
βΒ Β βΒ Β βββ index.ts
βΒ Β βΒ Β βββ models
βΒ Β βΒ Β βΒ Β βββ bankAccount.ts
βΒ Β βΒ Β βΒ Β βββ businessActivationRequest.ts
βΒ Β βΒ Β βΒ Β βββ businessApplication.ts
βΒ Β βΒ Β βΒ Β βββ businessInfo.ts
βΒ Β βΒ Β βΒ Β βββ businessOwner.ts
βΒ Β βΒ Β βββ nats
βΒ Β βΒ Β βΒ Β βββ nats-wrapper.ts
βΒ Β βΒ Β βββ routes
βΒ Β βΒ Β βΒ Β βββ AllActivationsRequests.ts
βΒ Β βΒ Β βΒ Β βββ approveActivationRequest.ts
βΒ Β βΒ Β βΒ Β βββ declineActivationRequest.ts
βΒ Β βΒ Β βΒ Β βββ getAcitvationRequest.ts
βΒ Β βΒ Β βΒ Β βββ MyActivationRequest.ts
βΒ Β βΒ Β βΒ Β βββ submitActivationRequest.ts
βΒ Β βΒ Β βββ types
βΒ Β βΒ Β βΒ Β βββ RequestStatus.ts
βΒ Β βΒ Β βββ utils
βΒ Β βΒ Β βββ validator.ts
βΒ Β βββ tsconfig.json
βββ payment
βΒ Β βββ docker
βΒ Β βΒ Β βββ Dockerfile-dev
βΒ Β βΒ Β βββ Dockerfile-prod
βΒ Β βββ package.json
βΒ Β βββ package-lock.json
βΒ Β βββ src
βΒ Β βΒ Β βββ app.ts
βΒ Β βΒ Β βββ events
βΒ Β βΒ Β βΒ Β βββ eventsTypes
βΒ Β βΒ Β βΒ Β βΒ Β βββ APIKeyVerifiedEvent.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ checkoutSessionCreated.ts
βΒ Β βΒ Β βΒ Β βΒ Β βββ verifyAPIKeyEvent.ts
βΒ Β βΒ Β βΒ Β βββ listeners
βΒ Β βΒ Β βΒ Β βββ checkoutCreatedListener.ts
βΒ Β βΒ Β βββ index.ts
βΒ Β βΒ Β βββ models
βΒ Β βΒ Β βΒ Β βββ Item.ts
βΒ Β βΒ Β βΒ Β βββ payment.ts
βΒ Β βΒ Β βββ nats
βΒ Β βΒ Β βΒ Β βββ nats-wrapper.ts
βΒ Β βΒ Β βββ types
βΒ Β βΒ Β βββ paymentStatus.ts
βΒ Β βΒ Β βββ queueGroupName.ts
βΒ Β βββ tsconfig.json
βββ push.ps1
βββ push.sh
βββ README.md
βββ skaffold.yaml
βββ tokenization
βΒ Β βββ docker
βΒ Β βΒ Β βββ Dockerfile-dev
βΒ Β βΒ Β βββ Dockerfile-prod
βΒ Β βββ package.json
βΒ Β βββ package-lock.json
βΒ Β βββ src
βΒ Β βΒ Β βββ app.ts
βΒ Β βΒ Β βββ helpers
βΒ Β βΒ Β βΒ Β βββ runInDevelopment.ts
βΒ Β βΒ Β βββ index.ts
βΒ Β βΒ Β βββ middlewares
βΒ Β βΒ Β βΒ Β βββ protect.ts
βΒ Β βΒ Β βββ models
βΒ Β βΒ Β βΒ Β βββ accessToken.ts
βΒ Β βΒ Β βΒ Β βββ token.ts
βΒ Β βΒ Β βββ nats
βΒ Β βΒ Β βΒ Β βββ __mocks__
βΒ Β βΒ Β βΒ Β βΒ Β βββ nats-wrapper.ts
βΒ Β βΒ Β βΒ Β βββ nats-wrapper.ts
βΒ Β βΒ Β βββ routes
βΒ Β βΒ Β βΒ Β βββ deTokenize.ts
βΒ Β βΒ Β βΒ Β βββ getServiceAccessToken.ts
βΒ Β βΒ Β βΒ Β βββ tokenize.ts
βΒ Β βΒ Β βββ utils
βΒ Β βΒ Β βββ generateToken.ts
βΒ Β βββ tsconfig.json
βββ updatePackages.ps1
150 directories, 399 files
- Typescript as the main languages for all backend services
- Express framework to handle http requests in the backend
- MongoDB for database and mongoose for ODM
- Nats streaming server as event bus and message queue -a little outdated but for our learning purposes it get the job done just like kafka for example-
- Ingress-nginx for load balancing
- Docker for containerization
- kubernetes for orchestration
- Jest for testing
You can view all the services endpoints docs from postman workspace
Note that we are deploying all of our services on a digitalOcean cluster that may not be available at any point of time in the future which means that may need to run the code locally to test it.