What is InvestGo?
InvestGo is a comprehensive invoice factoring and investment SaaS platform that connects businesses needing immediate cash flow with investors seeking profitable opportunities. Built on Spring Boot, InvestGo enables companies to sell their unpaid invoices at a discount while providing investors with attractive returns through secure, vetted investment opportunities.Key Capabilities
Investment Opportunities Management
InvestGo creates and manages investment opportunities based on factored invoices. Each opportunity includes:- TIR (Internal Rate of Return) and yield calculations
- Risk assessment ratings (A, B, C)
- Fundraising tracking with automatic status updates
- Maturity dates and payment schedules
Invoice Factoring
Businesses can upload and factor their invoices:- Invoice registration with enterprise validation
- Multi-invoice bundling into investment opportunities
- Automated status tracking (Active/Inactive)
- Payment date calculations
User & Role Management
Secure authentication and authorization system:- Admin and Inversionista (Investor) roles
- JWT-based authentication
- BCrypt password encryption
- User profiles with KYC information (DNI, contact details)
Digital Wallet System
Each user has an integrated digital wallet (Cartera) for:- Balance management
- Investment tracking
- Transaction history (deposits and withdrawals)
- Bank account integration
Enterprise Risk Management
Comprehensive risk assessment framework:- Enterprise profiling with business sector analysis
- Risk ratings with detailed descriptions
- Legal representative verification
- RUC (tax ID) validation
Technology Stack
Backend Framework
- Spring Boot 2.7.5 - Core application framework
- Java 1.8 - Programming language
- Spring Data JPA - Database abstraction layer
- Hibernate - ORM with MySQL8Dialect
Security
- Spring Security - Authentication and authorization
- JWT (JJWT 0.9.1) - Token-based authentication
- BCrypt - Password encryption
- Session-less (stateless) architecture
Database
- MySQL 8 - Primary database (schema: InvestGo)
- JPA entity relationships with lazy loading
- Automatic schema updates (
ddl-auto=update)
Additional Dependencies
- Spring Validation - Bean validation
- Spring DevTools - Development utilities
- Jackson - JSON serialization with timezone support (America/Lima)
Who Should Use This Documentation?
This documentation is designed for:- Backend Developers building or extending the InvestGo platform
- API Integrators connecting frontend applications or third-party services
- DevOps Engineers deploying and maintaining the application
- System Architects understanding the platform’s design patterns and structure
Core Entities
InvestGo is built around several key domain entities:| Entity | Description |
|---|---|
Usuario | Users with role-based access (Admin/Investor) |
Empresa | Companies seeking invoice factoring |
Factura | Invoices to be factored |
OportunidadInversion | Investment opportunities created from invoices |
Cartera | Digital wallets for users |
Transacciones | Wallet transactions (deposits/withdrawals) |
Riesgo | Risk assessment levels (A, B, C) |
CuentaBancaria | Bank accounts for transactions |
Getting Started
Quick Start
Set up your development environment and run InvestGo in minutes
Architecture
Understand the system design, patterns, and entity relationships
Platform Features
Investment Workflow
Investment Workflow
- Admin reviews and registers enterprises with risk assessment
- Enterprises upload invoices for factoring
- Admin creates investment opportunities by bundling invoices
- Investors browse opportunities and invest from their wallet
- System tracks fundraising and automatically closes opportunities
- Returns are calculated and distributed on maturity dates
Security Features
Security Features
- JWT tokens with Bearer authentication
- Role-based access control (RBAC)
- BCrypt password hashing
- Stateless session management
- CORS configuration for API access
- Authentication entry point for unauthorized requests
API Architecture
API Architecture
- RESTful endpoints under
/apiprefix - Separate
/adminand/userroutes for role-based access - Public
/generate-tokenendpoint for authentication - Pagination support for large datasets
- Comprehensive error handling with HTTP status codes
Project Structure
The application follows a layered architecture:All timestamps in InvestGo use the America/Lima timezone. Ensure your deployment environment is configured accordingly.