A modern double-entry accounting system built with FastAPI and React.
- ✅ User authentication with JWT
- ✅ Multi-company support
- ✅ Chart of accounts management
- ✅ Journal entry system with validation
- ✅ Financial reports (Balance Sheet, Income Statement, Trial Balance)
- ✅ Role-based access control
Backend:
- Python 3.11+ with FastAPI
- PostgreSQL database
- SQLAlchemy ORM
- JWT authentication
Frontend:
- React 18 with TypeScript
- Tailwind CSS for styling
- React Query for data fetching
- React Router for navigation
- Clone the repository:
git clone https://github.com/ericbuess/accounting.git
cd accounting- Copy environment file:
cp backend/.env.example backend/.env- Start the application:
docker-compose upThe application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- Create a virtual environment:
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt-
Set up PostgreSQL and update
.envfile -
Run the backend:
uvicorn app.main:app --reload- Install dependencies:
cd frontend
npm install- Start the development server:
npm run devFor development, you can register a new user through the API at /api/auth/register or use the registration endpoint.
Once the backend is running, visit http://localhost:8000/docs for interactive API documentation.
- Backend code is in the
/backenddirectory - Frontend code is in the
/frontenddirectory - Database migrations can be managed with Alembic
- Hot reloading is enabled for both frontend and backend
MIT