Skip to content

WayneLambert/chub

Repository files navigation

Chub

Software to help UK contractors manage their limited company.

Note: This project is a work in progress and hasn't been deployed to a live environment.

The aim is to provide a simple, easy to use, web application to help contractors manage their limited company throughout the touch points with prospects and clients.

The private portal comprises of 3 main sections:

  1. Contract Acquisition: This part of the project handles administration relating to the provision of services to prospects (which could become a client) through a recruiter. It also handles other pre-contract issues such as applications and interviews.

  2. Service Delivery & Finance: This part handles anything to do with the delivery and operations of a contract. This includes functionality such invoicing and accounting. Accounting should be double entry book-keeping and apply accounting standards such as cash flows, profit & loss accounts, balances sheets. There should be alignment to something like Sage One but more customised to UK contractors.

  3. Dashboards: This part is concerned with reporting and business intelligence giving the contractor important information and insights which can help them to become more effective in their business operations. Pages should segment the contract acquisition and service delivery & finance domains.

Key Features

  • Uses Postgres row-level security to ensure that only a user belonging to a given tenant can see data pertaining to that tenant.
  • Streamlined custom user model with attached Profile model for more complete storage of user attributes.
  • Uses Django Ninja to provide structured and secure APIs according to defined schemas for the frontend to consume.
  • Uses abstract models to provide shared behaviour across various tenant models by giving each tenant model a foreign key denoting the tenant it belongs to.
  • Uses custom middleware to ensure that the tenant is set correctly for each request.
  • Uses Next.js server actions to fetch data from the backend and render it to the client.
  • Uses shadcn UI for components and light Tailwind CSS customisation to provide a responsive, mobile-first design.
  • Uses TypeScript to provide type safety and better developer experience.
  • Includes a number of management commands to help with setup, development, and testing.
  • Dockerises the project using multi-stage builds to ensure that the final image is as small as possible.
  • Uses uv for Python packaging and dependency management.
  • Uses bun to manage JavaScript dependencies.

About

Software to help UK contractors manage their limited company

Resources

Stars

Watchers

Forks