Skip to content

Repository files navigation

PayTool - Group Payment Management Tool

PayTool is a modern group payment management tool that helps users easily manage group bills and payments.

Tech Stack

Frontend

  • Next.js 14
  • TypeScript
  • Tailwind CSS
  • GraphQL Client
  • UI Components:
    • shadcn/ui (based on Radix UI)
    • Lucide Icons
    • Tailwind CSS

Backend

  • Spring Boot
  • GraphQL
  • MySQL
  • Maven

Requirements

  • Node.js 18.0.0 or higher
  • Java 17 or higher
  • MySQL 8.0 or higher
  • Maven 3.6 or higher

Setup Instructions

1. Clone the Project

git clone [repository-url]
cd final-project-paytool

2. Backend Setup

  1. Configure Database

    • Create MySQL database
    • Update database configuration in backend/src/main/resources/application.properties:
      spring.datasource.url=jdbc:mysql://localhost:3306/paytool
      spring.datasource.username=your_username
      spring.datasource.password=your_password
  2. Start Backend Service

    cd backend
    sdk env
    mvn clean install
    mvn spring-boot:run

    Backend service will run at http://localhost:8080

3. Frontend Setup

  1. Install Dependencies

    cd frontend
    npm install
  2. Copy environment variables example file

    cp .env.example .env.local
  3. Start Development Server

    npm run dev

    Frontend service will run at http://localhost:3000

Usage Guide

  1. Visit http://localhost:3000 to open the application
  2. Register an account for first-time users
  3. After logging in, you can:
    • Create new payment groups
    • Join groups via QR code
    • Manage group bills
    • Track payment status

Development Guide

  • Frontend code is located in frontend/src directory
  • Backend code is located in backend/src/main/java directory
  • GraphQL schema is located in backend/src/main/resources/schema.graphqls

Troubleshooting

  1. If you encounter database connection issues, check:

    • MySQL service is running
    • Database configuration is correct
    • Database user has sufficient permissions
  2. If frontend cannot connect to backend, check:

    • Backend service is running
    • Frontend environment variables are configured correctly
    • CORS configuration is correct

Contributing

  1. Fork the project
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

License

MIT License

About

Group payment and bill-splitting tool. Next.js 14 + TypeScript frontend against a Spring Boot GraphQL API with MySQL.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages