Skip to content

A Django-based application for managing expenses with role-based authentication for Admin and Accountant roles

Notifications You must be signed in to change notification settings

DavidDanso/finance-manager

Repository files navigation

Expense Management System

This project is a Django-based Expense Management System application with role-based authentication and permissions for two user roles, Admin and Accountant, each having its own dashboard and permissions, allowing users to edit their profiles; it is built using Django, NeonDB for serverless Postgres, and Render for hosting, and consists of two main interfaces: the Accountant Dashboard and the Admin Dashboard.

Table of Contents

  • Features
  • Technologies Used
  • Setup and Installation
  • Usage
  • Project Interface

Features

Accountant Dashboard

  • Input fields for Date, Description, Main Category, Sub Category, and Payments.
  • Notifications from the admin for corrections or changes.
  • Ability to upload data using an Excel file.
  • Menu displaying records sent back for changes by the admin.
  • Reset password

Admin Dashboard

  • Approve/reject requests for modifications or Excel file uploads.
  • Generate and view reports.
  • Modify records directly.
  • Manage users (create/delete users, change permissions).
  • Menu displaying records pending for approval from accountants.
  • Detailed view of records with the ability to approve or send back for corrections.
  • Notifications for corrections or changes.
  • Modify records after approval based on specified date.

Technologies Used

  • Django: Web framework for developing the application.
  • PostgreSQL: Database management system.
  • NeonDB: For serverless Postgres Config.
  • AWS S3: Static files for the application.
  • Render: Continuous deployment and hosting platform.

Setup and Installation

Prerequisites

  • AWS account setup for S3.
  • Render account setup.
  • NeonDB account setup.

Installation

  1. Clone the repository:

    git clone https://github.com/DavidDanso/finance-manager.git
    cd finance-manager
    
  2. Set Up Environment Variables Create a .env file in the root directory and add your environment variables:

     DEBUG=1
     SECRET_KEY=your_secret_key
     DATABASE_URL=your_database_url
     AWS_ACCESS_KEY_ID=your_aws_access_key_id
     AWS_SECRET_ACCESS_KEY=your_aws_secret_access_key
    
  3. Create a virtual environment:

    python3 -m venv env
    
    
  4. Activate the virtual environment:

    On macOS and Linux:

    source env/bin/activate
    
    
  5. Install the required dependencies::

    pip install -r requirements.txt
    
    
  6. Apply Migrations:

    python manage.py migrate \
    python manage.py makemigrations
    
    
  7. Create a Superuser:

    python manage.py createsuperuser
    
    
  8. Collect Static Files:

    python manage.py collectstatic
    
    

Usage

  • Accountant: Log in to the Accountant Dashboard to manage entries, upload data, and view notifications.
  • Admin: Log in to the Admin Dashboard to approve/reject reports, manage users, generate reports, review records, approve or send back entries for corrections, and modify records.

Project Interface

 

Accountant Dashboard

 

Admin Dashboard

 

Notification Modal

 

Excel Upload

Author

David Danso - Initial work - GitHub Profile

Happy Coding!

About

A Django-based application for managing expenses with role-based authentication for Admin and Accountant roles

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published