Skip to content

Martini310/billwise

Repository files navigation

BillWise

Billwise is my first fullstack project in Django Rest Framework, NextJS and Celery.
The purpose of the app is to manage payments from different suppliers in one place. No more logging to every supplier page separately. Here you have everything in one complex dashboard with overall view, statistics and charts.

🛠️ Tech stack

📋 Table of Contents

🏗️Installation

Live preview 🔍

Billwise is deployed on:



Docker 🐋

You can also run the app locally using Docker. There are ready to use Dockerfiles and docker-compose. You only need to clone the repository and run docker compose.

git clone https://github.com/Martini310/billwise.git

And run the container

docker-compose up

Run locally 💻

If you want to run all the services manually it is also easy but require a little more work.

Prerequisites

Before you get started, make sure you have the following installed:

  • Python (3.10.7 or higher)
  • Node.js (18.16.1 or higher)
  • RabbitMQ / Redis

Firstly clone the repo

git clone https://github.com/Martini310/billwise.git

Then install required prerequisites

pip install -r requirements.txt

Migrate data into Database. Default Database is SQLite, if you want to configure another DB set it in settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

and then:

python manage.py migrate

Locally I use RabbitMQ and Redis on Render. You can change it here:

CELERY_BROKER_URL = os.environ.get('CELERY_BROKER', 'pyamqp://guest@rabbitmq:5672//')

Now you can run all needed servers

python manage.py runserver
cd frontend
npm start
celery -A billwise worker -l info --pool=solo
celery -A billwise beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler
celery -A billwise flower --port=5555   

The App is available under localhost:3000

🚀Usage

some usage description

Some images

dashboard dashboard2 suppliers profile login

🔧Configuration

You can customize Billwise Project by modifying the configuration in settings.py. Here are some of the available settings:

  • DEBUG_MODE: Set to True to enable debug mode.
  • DATABASES: By default Billwise is running locally with sqlite, you can specify another database if needed.
  • ACCESS_TOKEN_LIFETIME: Set lifetime of the acces token
  • CELERY_BEAT_SCHEDULE: Set your own scheduled tasks.

📒Feature Roadmap

Main features for now:

  • ✅ Payments synchronized with major platforms in Poland (PGNiG, Enea, Aquanet)
  • ✅ Yearly summary with monthly chart and year-2-year comparission
  • ✅ Newest/Nearest Payment
  • ✅ Payment Percentage
  • ✅ Month summary with month-2-month comparission
  • ✅ Add own invoices manually
  • ✅ Invoice details in modal window
  • ✅ Background worker to scheduled data fetching

Plans:

  • 🔜 Real-time notifications
  • ✅ Autheticate with Google
  • 🔜 Email notifications
  • 🔜 Payments directly from app
  • 🔜 Many more suppliers (Inea, Orange, Tmobile etc.)
  • 🔜 Dark mode

👥Contributing

Welcome contributions! Here's how to get started:

  • Report issues on my Issue Tracker.
  • Submit pull requests with improvements or bug fixes.

📋License

This project is licensed under the MIT License. See the LICENSE file for details.

📨Support & Contact

If you encounter any issues or have questions, please send me an email

Changelog

2024-02-11

Implemented Google authentication

About

DRF + NextJS + Celery App to manage payments for energy, water, gas etc.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published