RoundUp is a backend service that automatically rounds up every UPI transaction and transfers the spare change into a dedicated investment account. Built entirely in Go, the backend is designed to be modular, scalable, and secure, providing a robust foundation for a seamless financial savings experience.
- UPI Integration: Securely interact with UPI.
- Automatic Transaction Rounding: Calculate and transfer the spare change from each transaction.
- User Management: Handle registration, authentication, and user profile management.
- Dashboard Data Aggregation: Aggregate transaction data for visual feedback on savings progress.
- Modular Architecture: A well-defined separation of concerns across different layers.
- High Scalability: Designed to handle high transaction volumes efficiently.
- HTTP Server & Routing: Utilizes Gin for routing HTTP requests.
- Middleware: Handles authentication, logging, and error management.
- Handlers: Direct incoming requests to the appropriate service after performing basic validations.
- Transaction Service: Manages transaction processing, including the calculation of round-up amounts and transfer of spare change.
- User Management Service: Oversees user registration, login, and profile updates.
- Dashboard Service: Aggregates data from various services to display real-time savings metrics.
- Models & Entities: Defines core data structures such as
User,Transaction, andSavingsAccountusing Go structs. - Repository Pattern: Abstracts CRUD operations to ensure a separation between business logic and data persistence.
- Database Integration: Connects to PostGreSQL databases using Go drivers, with robust transaction management and connection pooling.
- UPI Gateway Module: A dedicated module to securely interact with UPI for transaction processing.
- Authentication & Authorization: Implements secure authentication using JWT.
- Input Validation: Enforces strict validation and sanitization of incoming data to mitigate common vulnerabilities.