Skip to content

An open-source small business accounting platform designed to provide powerful accounting functionality in a user friendly format.

License

Notifications You must be signed in to change notification settings

ianberryman/OpenBooks

Repository files navigation

Open Source Love Open Source Helpers

GitHub version Coverage Status codebeat badge

OpenBooks API

An open-source small business accounting platform designed to provide powerful accounting functionality in a user friendly format.

OpenBooks UI Concept

The source is licensed under GPLv3 to ensure it remains open to anyone that wants to modify or extend it.

Get started quickly by cloning this repository and creating a .env file in the root directory containing the following (replace your_db_username and your_db_password):

# MySQL Database
DB_HOST=localhost
DB_PORT=3306
DB_USER=openbooksapi
DB_PASSWORD={your_db_password}
DB_DATABASE=openbooks

Then run:

yarn

# For dev
npm start

# For Docker
docker-compose up

By default the API is available on port 4000.

Core Functionality

Double Entry Accounting Expense/Revenue Tracking Invoicing
Bank Import/Reconciliation Reports Financial Statements
Web/Mobile Apps Dashboards Open API
Customers/Vendors Mileage Tracking Employees/Payroll

Architecture

This platform is separated into several distinct layers forming an n-tier architecture to ensure it can be extended and deployed in many different environments.

It is composed of a GraphQL API exposing core business logic (this repo) backed by a standard data model. This serves to simplify extensibility and provide a clear guide for future development. There is also a pre-built front-end over at OpenBooksUI but custom implementations are encouraged.

The goal is to offer this platform in a format that can be easily deployed by users without technical skill. A SaaS offering may also be considered if it is deemed beneficial for end users and can be justified given the costs.

Tech Stack

The core business logic layer is written in NodeJS using Apollo Server.

The browser UI is written in ReactJS (OpenBooksUI) to enable powerful, responsive client-side functionality. However, as mentioned in Architecture, the platform is designed to be extended easily. The web API provides all the core functionality in a format that can be implemented by other UI frameworks and languages and mobile applications.

Contributing

As this project is in its early stages, we are in need of contributors. Much work is to be done from design to coding to documentation; all of these areas require special attention and will benefit from your input. Feel free to make suggestions, open issues and submit pull requests to improve the platform.

Git Flow is used to keep track of branches and the various stages of development that they represent.

Branch Pattern Purpose
master Contains release history
release Contains a specific release version (e.g. release/1.0.0)
develop Contains "next release" actively in development
feature Contains work for a specific feature (e.g. feature/do-something)
bugfix Contain fixes for a bug (e.g. bugfix/uh-oh)

Run git flow init to enable Git Flow when you clone this repository and accept all of the default values for the branch names. All commits should be done via a branch and submitted in a pull request.

The standard flow from feature to release should look like:

feature -> develop -> release -> master

where each arrow represents a pull request and merge.

About

An open-source small business accounting platform designed to provide powerful accounting functionality in a user friendly format.

Resources

License

Stars

Watchers

Forks

Packages

No packages published