Coder Social home page Coder Social logo

takanome-dev / pay-wise Goto Github PK

View Code? Open in Web Editor NEW
7.0 1.0 1.0 1.51 MB

Your open source payment solution for seamless integration of secure payment processing into your projects.

License: MIT License

JavaScript 1.52% TypeScript 97.91% CSS 0.57%
mintlify monorepo nestjs nextjs open-source payment-integration payment-processing payment-service

pay-wise's Introduction

Pay Wise

Seamlessly integrate payment processing into your projects

Licence Badge Release Badge CI

app docs

๐Ÿšง Status :construction

Pay Wise is currently early in the development cycle. This app is not yet functional but is being actively developed. Please "watch" the project and leave a star and help us build this platform.

Note

The logo is not final and will probably change in the future. If you have any ideas, please open an issue. Same goes for the name and branding ๐Ÿ˜ƒ

๐Ÿ’ก Features

  • Log in with oauth
  • Create credit cards
  • Accept payments
  • Create customers
  • What else?

๐Ÿ–ฅ๏ธ Local development

Check out the local development to learn how you can start working on this project.

๐Ÿค Contributing

We welcome contributions of all sizes, from small bug fixes to new features. Just check out the open issues and pull requests to see where you can make an impact. Don't forget to read our Contributing Guide to learn how you can get involved.

โš–๏ธ LICENSE

The scripts and documentation in this project are released under the MIT LICENSE

๐Ÿ™ Support

Don't forget to leave a โญ if you like this project ๐Ÿ˜‰

pay-wise's People

Contributors

dependabot[bot] avatar renovate[bot] avatar takanome-dev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

pay-wise's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • chore(deps): update dependency eslint to v8.57.0
  • chore(deps): update dependency tailwindcss to v3.4.4
  • chore(deps): update pnpm to v8.15.8
  • chore(deps): update react monorepo (@types/react, @types/react-dom, react, react-dom)
  • fix(deps): update dependency @formkit/auto-animate to ^0.8.0
  • fix(deps): update dependency @supabase/auth-helpers-nextjs to ^0.10.0
  • fix(deps): update dependency @t3-oss/env-nextjs to ^0.10.0
  • fix(deps): update dependency next-themes to ^0.3.0
  • fix(deps): update dependency passport to ^0.7.0
  • fix(deps): update dependency reflect-metadata to ^0.2.0
  • chore(deps): update actions/cache action to v4
  • chore(deps): update actions/checkout action to v4
  • chore(deps): update actions/setup-node action to v4
  • chore(deps): update actions/upload-artifact action to v4
  • chore(deps): update dependency @types/passport-jwt to v4
  • chore(deps): update dependency @types/supertest to v6
  • chore(deps): update dependency eslint to v9
  • chore(deps): update dependency eslint-plugin-unused-imports to v4
  • chore(deps): update dependency mintlify to v4
  • chore(deps): update dependency node to v20 (node, @types/node)
  • chore(deps): update dependency supertest to v7
  • chore(deps): update pnpm to v9
  • chore(deps): update pnpm/action-setup action to v4
  • fix(deps): update dependency @radix-ui/react-select to v2
  • fix(deps): update dependency card-validator to v9
  • fix(deps): update dependency cmdk to v1
  • fix(deps): update dependency date-fns to v3
  • fix(deps): update dependency nestjs-pino to v4
  • fix(deps): update dependency pino-http to v10
  • fix(deps): update dependency pino-pretty to v11
  • fix(deps): update dependency tailwind-merge to v2
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Warning

Renovate failed to look up the following dependencies: Failed to look up npm package @takanome-dev/eslint-config-base, Failed to look up npm package @takanome-dev/tsconfig, Failed to look up npm package @takanome-dev/eslint-config-typescript, Failed to look up npm package @takanome-dev/eslint-config.

Files affected: package.json, server/package.json, web/package.json


Other Branches

These updates are pending. To force PRs open, click the checkbox below.

  • chore(deps): update dependency nodemailer to v6.9.9 [security]
  • fix(deps): update dependency zod to v3.22.3 [security]

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/ci.yml
  • actions/checkout v3
  • pnpm/action-setup v2.4.0
  • actions/setup-node v3
  • actions/cache v3
  • githubocto/repo-visualizer 0.9.1
  • actions/upload-artifact v3
npm
docs/package.json
  • mintlify 4.0.122
package.json
  • @takanome-dev/eslint-config-base 1.0.4
  • @takanome-dev/tsconfig 1.0.3
  • eslint ^8.0.0
  • eslint-plugin-prettier 5.0.0-alpha.2
  • eslint-plugin-unused-imports ^3.0.0
  • next 13.4.19
  • typescript ^5.0.0
  • node >=18.0.0
  • pnpm 8.7.5
server/package.json
  • @nestjs/common ^10.0.0
  • @nestjs/config ^3.0.0
  • @nestjs/core ^10.0.0
  • @nestjs/jwt ^10.0.3
  • @nestjs/mapped-types ^2.0.0
  • @nestjs/passport ^10.0.0
  • @nestjs/platform-express ^10.0.0
  • @nestjs/swagger ^7.0.1
  • @nestjs/typeorm ^10.0.0
  • @supabase/supabase-js 1.35.6
  • bcrypt ^5.1.0
  • card-validator ^8.1.1
  • class-transformer ^0.5.1
  • class-validator ^0.14.0
  • nestjs-pino ^3.2.0
  • nestjs-supabase-auth ^1.0.9
  • passport ^0.6.0
  • passport-jwt ^4.0.1
  • passport-local ^1.0.0
  • pg ^8.11.0
  • pino-http ^8.3.3
  • pino-pretty ^10.0.0
  • reflect-metadata ^0.1.13
  • rxjs ^7.2.0
  • semver ^7.5.2
  • typeorm ^0.3.16
  • @nestjs/cli ^10.0.0
  • @nestjs/schematics ^10.0.0
  • @nestjs/testing ^10.0.0
  • @takanome-dev/eslint-config-typescript 1.0.4
  • @types/bcrypt ^5.0.0
  • @types/express ^4.17.13
  • @types/jest 29.5.4
  • @types/node 18.17.12
  • @types/passport-jwt ^3.0.8
  • @types/passport-local ^1.0.35
  • @types/semver ^7.5.0
  • @types/supertest ^2.0.11
  • jest 29.6.4
  • source-map-support ^0.5.20
  • supertest ^6.1.3
  • ts-jest 29.1.1
  • ts-loader ^9.2.3
  • ts-node ^10.0.0
  • tsconfig-paths 4.2.0
  • typescript ^5.0.0
  • node >18.x
web/package.json
  • @formkit/auto-animate ^0.7.0
  • @headlessui/tailwindcss ^0.2.0
  • @hookform/resolvers ^3.1.0
  • @radix-ui/react-alert-dialog ^1.0.4
  • @radix-ui/react-avatar ^1.0.3
  • @radix-ui/react-checkbox ^1.0.4
  • @radix-ui/react-dialog ^1.0.4
  • @radix-ui/react-dropdown-menu ^2.0.5
  • @radix-ui/react-icons ^1.3.0
  • @radix-ui/react-label ^2.0.2
  • @radix-ui/react-popover ^1.0.6
  • @radix-ui/react-radio-group ^1.1.3
  • @radix-ui/react-select ^1.2.2
  • @radix-ui/react-separator ^1.0.3
  • @radix-ui/react-slot ^1.0.2
  • @radix-ui/react-switch ^1.0.3
  • @radix-ui/react-toast ^1.1.3
  • @supabase/auth-helpers-nextjs ^0.7.3
  • @supabase/supabase-js ^2.31.0
  • @t3-oss/env-nextjs ^0.6.0
  • @tanstack/react-table ^8.9.3
  • @tremor/react ^3.2.1
  • class-variance-authority ^0.7.0
  • clsx ^2.0.0
  • cmdk ^0.2.0
  • date-fns ^2.30.0
  • lucide-react ^0.266.0
  • next 13.5.1
  • next-themes ^0.2.1
  • react 18.2.0
  • react-day-picker ^8.7.1
  • react-dom 18.2.0
  • react-hook-form ^7.44.3
  • tailwind-merge ^1.13.0
  • tailwindcss-animate ^1.0.6
  • zod ^3.21.4
  • @takanome-dev/eslint-config 1.0.4
  • @types/node 18.17.12
  • @types/react 18.2.21
  • @types/react-dom 18.2.7
  • autoprefixer 10.4.15
  • eslint 8.48.0
  • nodemailer ^6.9.3
  • postcss 8.4.31
  • prettier ^3.0.0
  • tailwindcss 3.3.3
  • typescript 5.1.6
nvm
.nvmrc
  • node 18

  • Check this box to trigger a request for Renovate to run again on this repository

Feature: Format card balance based on the card currency

Type of feature

๐Ÿ• Feature

Current behavior

The card's balance is not correctly formatted, the currency has been hard coded

Suggested solution

Use Intl format or a lib to format the balance based on the currency

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Flip credit card onclick to reveal details

Type of feature

๐Ÿ• Feature

Current behavior

When the card is clicked right now, it just shows the details

Suggested solution

Flip the card on click with a nice and smooth transition ๐Ÿ™‚

card-flip

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Docs: update running project locally copy

What is incorrect in the documentation?

2023-08-14_20-34

What should that text say?

Now, the docs also starts when running pnpm dev ๐Ÿ˜„ We can just say that it will run on port 3001

Additional information

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Redirect to dashboard when user has a session

Type of feature

๐Ÿ• Feature

Current behavior

When you're logged in and visit the homepage, you're not redirected to the dashboard and the header shown includes login/register buttons making it look like you're not logged in.

Suggested solution

Redirect to the dashboard when visiting the homepage as a logged-in user.

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Bug: Generated credit card numbers failing to pass validation

Describe the bug

The generated credit card numbers were fixed in #88 but they are failing to pass the credit card validator

Suggested solution

Tried different solutions but couldn't generate valid credit card numbers ๐Ÿ’€

Any help is welcomed ๐Ÿ™

Additional context

This is the function that generates the credit card. There must be something wrong here ๐Ÿค”

private generateCardNumber(brand: string) {
const prefixes = this.getPrefixes(brand as CreditCardBrand);
const prefix = prefixes[Math.floor(Math.random() * prefixes.length)];
const numberWithPrefix = prefix + this.generateRandomNumber(prefix.length);
const checksum = this.calculateLuhnChecksum(numberWithPrefix);
return numberWithPrefix + checksum.toString();
}

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Question: How to handle encryption/decryption of credit card infos?

Problem

Based on my research, credit card numbers and CVV shouldn't be saved as plain text in the database but should be encrypted. That's what I did initially, but then I start thinking what if the user has like 50 credit cards, are we going to loop through them and decrypt each card number before returning the result?

That doesn't seem like a good solution, IMO (it probably takes time). I also consider decrypting credit card numbers on the frontend when displaying the card details, but I'm not sure if that's a good approach.

For now, I removed the encryption and saved card details as plain text in the db (we're still in development ๐Ÿ™ƒ). This will be changed once we found a good solution to that,

Possible Solution

Something else I think of is adding a pin code on each credit card, and then once the user wants to see their card details, they will provide the pin code and we will have an endpoint that is going to verify, decrypt, and return the card details.

That sounds like a better approach but would love to hear from others before choosing a solution.

Questions?

  • What do you think about this?
  • Is there a better approach to how to handle this?
  • What else?

Feature: Make cache revalidation for the cards faster

Type of feature

๐Ÿ”ฅ Performance

Current behavior

Currently, when you generate a card on the dashboard, you will have to wait for a couple of seconds for the cache revalidation to terminate, and the UI update before you can see the card.

We are using nextjs revalidate tag to do the cache revalidation

Suggested solution

Use a faster method to make the cache revalidation faster or just a more performant way or approach on how to do it

Additional context

Feel free to drop any suggestions or alternative ways to do this

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Update placeholder loading in dashboard/cards page

Type of feature

๐Ÿ• Feature

Current behavior

The current loader in the cards page doesn't match the UI of the cards

Suggested solution

Change placeholder loading UI to match the cards

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Change the toast position and add new variants

Type of feature

๐Ÿ• Feature

Current behavior

The current toast is shown in the bottom-right corner and does not have a success variant.

Suggested solution

Change the position to top-right and add a success variant.

Maybe also change the destructive variant?

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Format credit card number to be more readable

Type of feature

๐Ÿ• Feature

Current behavior

card-num-format

Suggested solution

Format card number in a readable format (i.e: 4242 4242 4242 4242)

The credit card component is in apps/web/src/components folder

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Display transactions in a table in the dashboard

Type of feature

๐Ÿ• Feature

Current behavior

Currently, the transactions are only displayed as plain text.

Suggested solution

Display transactions in a table using @tanstack/react-table. Check out this example

Additional context

This needs #98 to be completed

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Correctly generating credit card numbers

Type of feature

๐Ÿ• Feature

Current behavior

Currently, credit card numbers are generated randomly. But they should be generated using the structure of a credit card number.

Suggested solution

The Structure of a credit card number

TODO: fill it ๐Ÿ˜…

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

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.