Skip to content
/ rPay Public

This is an end to end project from first principles. It covers the fundamentals of system design, to UI/UX and everything that I learnt from 100xDevs.

Notifications You must be signed in to change notification settings

rayyan21d/rPay

Repository files navigation

rPay: A Centralized Payment System

Description

This is a centralized payment system that allows users to make payments to merchants. It's architected as a monorepo using Turbo.

The system is made up of three main components:

  • User App: This is the user facing application that allows users to make payments to merchants.

  • Merchant App: This is the merchant facing application that allows merchants to receive payments from users.

  • Bank Webhook Handler: This is a webhook handler that listens for payment events from the bank and updates the payment status in the database.

Using this example

Run the following command:

npx create-turbo@latest

What's inside?

This Turborepo includes the following packages/apps:

Apps and Packages

  • user: a user facing Next.js app
  • merchant: a merchant facing Next.js app
  • @repo/ui: a stub React component library shared by both user and merchant applications
  • @repo/eslint-config: eslint configurations (includes eslint-config-next and eslint-config-prettier)
  • @repo/typescript-config: tsconfig.jsons used throughout the monorepo

Each package/app is 100% TypeScript.

Utilities

This Turborepo has some additional tools already setup for you:

Build

To build all apps and packages, run the following command:

cd my-turborepo
pnpm build

Develop

To develop all apps and packages, run the following command:

cd my-turborepo
pnpm dev

Remote Caching

Turborepo can use a technique known as Remote Caching to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines.

By default, Turborepo will cache locally. To enable Remote Caching you will need an account with Vercel. If you don't have an account you can create one, then enter the following commands:

cd my-turborepo
npx turbo login

This will authenticate the Turborepo CLI with your Vercel account.

Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your Turborepo:

npx turbo link

Useful Links

Learn more about the power of Turborepo:

About

This is an end to end project from first principles. It covers the fundamentals of system design, to UI/UX and everything that I learnt from 100xDevs.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published