AkibaPamoja is a backend REST API built with Django and Django REST Framework, designed to digitize and streamline the management of chamas (informal savings/investment groups) in Kenya.
-
Clone the repo (do not fork) by running
git clone https://github.com/Akiba_backend/ -
Ensure that you have installed PostgreSQL and that it is running
-
Copy the
.env-examplefile to.envfile and change the secret key (At present we can keep the database parameters for localhost testing) -
Create a virtual environment folder outside the github local repo NB: You may create the virtual environment folder inside the github local repo but you have to update the .gitignore to ignore the folder (
python -m venv .venv) -
Activate your virtual environment (
. .venv/bin/activate) -
Install packages by running
pip install -r requirements.txt -
Create the database in PostgreSQL:
sudo -u postgres psqlCREATE DATABASE akiba;CREATE USER akiba WITH PASSWORD 'akiba';ALTER ROLE akiba SET client_encoding TO 'utf8'ALTER ROLE akiba SET default_transaction_isolation TO 'read committed';ALTER ROLE akiba SET timezone TO 'Africa/Nairobi';GRANT ALL PRIVILEGES ON DATABASE akiba TO akiba;\q
-
./manage.py makemigration -
./manage.py migrate -
To start the local host server run
python3 manage.py runserver -
Ensure you access the website via http://127.0.0.1:8000 so that session auth works correctly
By default always create a new branch from dev i.e. git checkout -b feature/your_name Once your work is done, push your code to remote branch and create PR All merge conflicts are solved using git rebase to preserve linear history
- 🧑🤝🧑 User Management – Signup, login, and role-based access (admin, treasurer, member)
- 🏘 Group Management – Create and manage chamas, invite and remove members
- 💰 Transactions – Record contributions, withdrawals, and view ledger
- 📊 Reports – Generate group financial summaries
- 📩 Notifications – Send SMS or push alerts for transactions and updates