A comprehensive accounting software platform with multi-business support, payment integrations, and advanced reporting capabilities.
- Multi-role Authentication: Admin and user roles with different capabilities
- Business Management: Create and manage multiple business entities
- Chart of Accounts: Customizable account structures with auto-generation
- Transaction Management: Manual entry and automated sync from integrations
- Payment Integrations: Stripe, Square, PayPal, Venmo, CashApp, NMI, Paysley
- Advanced Reports: P&L, Balance Sheet, Cash Flow, Transaction summaries
- Invitation System: Admin can invite users with free accounts
- Responsive Design: Works on desktop, tablet, and mobile
- RESTful API: Comprehensive API with proper authentication
- Database: PostgreSQL with Knex.js migrations and query builder
- Authentication: JWT-based auth with role-based access control
- Account Types: Paid, Free, Invited, and Super Free accounts
- Business Logic: Complete accounting logic with proper validation
- Integration Framework: Extensible system for payment platform integrations
- Admin Panel: Full admin capabilities for user and system management
-
Clone and Setup:
git clone <repository> cd accuflow cp .env.example .env cp backend/.env.example backend/.env
-
Configure Environment: Edit
.envandbackend/.envwith your domains and secrets:# .env FRONTEND_DOMAIN=accuflow.local BACKEND_DOMAIN=api.accuflow.local JWT_SECRET=your-super-secret-jwt-key ACME_EMAIL=your-email@domain.com -
Start with Docker Compose:
docker-compose up -d
-
Run Database Migrations:
docker-compose exec backend npm run migrate -
Access the Application:
- Frontend: https://accuflow.local
- Backend API: https://api.accuflow.local
- Traefik Dashboard: http://traefik.accuflow.local:8080
- Node.js 18+
- PostgreSQL 15+
- npm or yarn
cd backend
npm install
cp .env.example .env
# Edit .env with your database credentials
npm run migrate
npm run devnpm install
cp .env.example .env.local
# Edit .env.local with your API URL
npm run devsrc/
├── components/
│ ├── admin/ # Admin-only components
│ ├── user/ # User dashboard components
│ ├── auth/ # Authentication components
│ └── common/ # Shared components
├── contexts/ # React contexts
├── services/ # API and business logic
├── types/ # TypeScript type definitions
└── utils/ # Utility functions
backend/src/
├── routes/ # API route handlers
├── middleware/ # Express middleware
├── services/ # Business logic services
├── types/ # TypeScript interfaces
├── config/ # Configuration files
└── migrations/ # Database migrations
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/auth/me- Get current user
GET /api/businesses- List user's businessesPOST /api/businesses- Create new businessPUT /api/businesses/:id- Update businessDELETE /api/businesses/:id- Delete business
GET /api/accounts/business/:businessId- Get chart of accountsPOST /api/accounts- Create accountGET /api/transactions/business/:businessId- Get transactionsPOST /api/transactions- Create transaction
GET /api/integrations/business/:businessId- List integrationsPOST /api/integrations- Connect integrationPOST /api/integrations/:id/sync- Sync integration
GET /api/reports/profit-loss/:businessId- P&L reportGET /api/reports/balance-sheet/:businessId- Balance sheetGET /api/reports/cash-flow/:businessId- Cash flow report
GET /api/admin/stats- System statisticsGET /api/admin/users- List all usersPOST /api/invitations- Send invitationPOST /api/invitations/super-account- Create super free account
- Paid Accounts: Full access, multiple businesses, unlimited transactions
- Free Accounts: 1 business, 500 transactions/month, basic integrations
- Super Free Accounts: Unlimited everything, no billing required
- Invited Accounts: Free accounts created via admin invitation
- Set up your server with Docker and Docker Compose
- Configure your domain DNS to point to your server
- Update
.envwith production values - Run:
docker-compose -f docker-compose.yml up -d
Traefik automatically handles SSL certificates via Let's Encrypt.
- Database: Regular PostgreSQL backups
- Files: Backup docker volumes and configuration files
- JWT authentication with secure tokens
- Role-based access control
- Rate limiting on API endpoints
- Input validation and sanitization
- SQL injection prevention via parameterized queries
- XSS protection headers
- CORS configuration
- Secure password hashing with bcrypt
The platform supports multiple payment integrations:
- Stripe: Credit card processing
- Square: POS and online payments
- PayPal: Digital payments
- Venmo: P2P payments
- CashApp: Mobile payments
- NMI: Payment gateway
- Paysley: Modern payment processing
Each integration supports:
- OAuth or API key authentication
- Automatic transaction sync
- Webhook handling
- Real-time updates
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.
For support and questions:
- Create an issue in the repository
- Check the documentation
- Review the API endpoints
- Mobile app (React Native)
- Advanced analytics and insights
- Multi-currency support
- Inventory management
- Payroll integration
- Tax preparation features
- API rate limiting improvements
- Advanced user permissions