Giter Club home page Giter Club logo

pouch's Introduction

Pouch: Your Digital Wallet MVP

Pouch is a minimalist MVP (Minimum Viable Product) designed to emulate the functionality of a digital wallet app. Pouch isn’t just any wallet app—it’s a versatile platform that can be seamlessly integrated with other services to serve as their wallet and reward management system. I originally developed Pouch to complement my passion project, Menteor, which I’m currently working on. Right now, Pouch is in its MVP stage, featuring two main modules: user, handling all things wallet-related, and merchant, designed for managing rewards by admin users.

Technologies Utilized

Pouch leverages the following technologies to deliver its functionalities:

  • Next.js: Utilized for both the User and Merchant applications.
  • Express: Employed to simulate bank endpoints, ensuring transaction success.
  • AWS: Utilized EC2 for deployment. Future integration is postponed to streamline and reduce costs initially.
  • Monorepo: Utilized Turborepo as the build system and for maintaining the Monorepo.
  • Prisma: Utilized as the ORM.
  • PostgreSQL: Dockerized container for local development and NeonDB for production.
  • Tailwind CSS: Utilized for styling.
  • Shadcn: Planned for future integration, as the current version of the app is a basic MVP.
  • CI/CD: Implemented for building and deploying to Docker.
  • Docker: Utilized for containerization.

Features

Currently, Pouch focuses on user-side functionalities. However, it also envisions a merchant-side interface, similar to the merchant app provided by Paytm, enabling merchants to interact with the platform.

Getting Started

To set up and run Pouch locally, follow these steps:

  1. Clone the Repository:

    git clone https://github.com/Ahd-Kabeer-Hadi/Pouch.git
  2. Install Dependencies:

    npm install
  3. Run PostgreSQL:

    Run PostgreSQL either locally or on the cloud (e.g., Neon.tech):

    docker run --name pouch -e POSTGRES_PASSWORD=pword -d -p 5432:5432 postgres
  4. Copy Environment Variables:

    Copy all .env.example files to .env and update them with the correct database URL.

  5. Migrate Database Schema:

    Navigate to packages/db and run:

    npx prisma migrate dev
  6. Seed the Database:

    Continue in the packages/db directory and run:

    npx prisma db seed
  7. Run the User Application:

    Navigate to apps/user-app and execute:

    npm run dev
  8. Test Login Credentials:

    Try logging in using the provided test credentials:

    • Phone: 1111111111
    • Password: alice (as specified in seed.ts)

Contribution

Contributions to Pouch are welcome! Feel free to fork the repository, make your changes, and submit a pull request. Be sure to follow the contribution guidelines outlined in the repository.

License

Pouch is licensed under the MIT License. Feel free to use, modify, and distribute this software as per the terms of the license.

pouch's People

Contributors

ahd-kabeer-hadi avatar

Watchers

 avatar

pouch's Issues

Bug: Build fails

The build has failed. Please refer to the following link for details: see build

Initial Assessment:
There is a possibility of misconfiguration in the environment files. Please see the attached screenshot for reference:
Screenshot 2024-04-21 111907
Screenshot 2024-04-21 124436

Integration of Docker Configuration

This task involves adding Docker configurations to the project.As of now, we don't have an actual implementation of Docker, but rather instructions for setting up the database locally as outlined in the project's documentation. However, introducing proper Docker configuration will significantly improve the development experience and management of the project. This enhancement will contribute to the project's maintainability and portability, allowing for smoother deployment and easier management of dependencies.

Implement CI/CD Pipeline

This issue aims to introduce Continuous Integration/Continuous Deployment (CI/CD) pipelines to the project. By implementing CI/CD, we can automate the process of testing, building, and deploying our application, ensuring smoother and more efficient development cycles. This enhancement will enhance our development workflow, enabling us to deliver updates and features with greater speed and reliability.

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.