lipila

Lipila is an Online Fees Collection System suitable for educational institutes of all sizes. Lipila is a powerful combination of Fee Management Software + Online Payment Gateway by which you can collect fees from your students online & manage everything like a Pro!

Description

Lipila is software focused to provide solutions to schools, colleges, universities, coaching institutes, academies, etc.

benefits

  • fast and secure payments
  • no need to be tracking paper receipts
  • cheaper
  • saves time, no more bank queues
  • complete payments in 5 seconds

Admin Features

The application supports the following features for admin user:

  • Login into the application
  • Registering a new school
  • Adding a new student
  • Checking history of all payments

Student Features

The application supports the following features for student/parent users:

  • Check all payments history
  • Make a payment

Project Layout

file / directory description
lipila/ package containing project files
lipila/momo package with modules for quering third party mobile money API's
lipila/momo/airtel_momo.py module that queries the Airtel momo API.
lipila/momo/mtn_momo.py module that queries the MTN momo API.
lipila/momo/momo module with Momo base class definition
lipila/static directory with css static files
lipila/templates directory with html template files
lipila/views package with application views
lipila/views/admin module with views that handle admin functions eg. adding new users
lipila/views/auth module with views that handle authentication
lipila/views/lipila module with views to handle student payments
lipila/init.py project factory, the entry point to the project
lipila/db.py contains functions to initialize the database and creating database connections
lipila/schema-pro.sql file defining the database tables
lipila/tests package containing unittests

Running The Application Locally

Download the code by cloning this respository

    git clone git@github.com:sangwani-coder/lipila.git

Set environment variables

Navigate into the project directory and make a copy of the example environment variables file.

    cd lipila
    cp env.example .env

MTN api key

In order to use the MTN momo API you must signup for the service at momodeveloper After creating an account you should subscribe to the collections product.

Env Vars

  • SUB_KEY= copy your secret api key from mtn and paste it here

  • LIP_ENV=db

  • PGUSER=lipila_dev

  • PGPASSWORD=lipila

  • PGDATABASE=lipila

  • PGHOST=localhost

  • MAIL_USERNAME=your gmail account

  • MAIL_PASSWORD=your password associated with your email account

Initializing the Database

  • create a postgres database named lipila

You initialize the database by calling the init-db method that has been registered with the app, it can be called using the flask command.

Run the init-db command:

    flask --app lipila init-db

Initialized the database.

There will now be a lipila.sqlite file in the instance folder in your project.

Run the app Run the following commands in the project directory to install the dependencies and run the app. When running the commands, you may need to type python3/pip3 instead of python/pip depending on your setup.

    python -m venv venv

    . venv/bin/activate
    
    pip install -r requirements.txt

Debug mode shows an interactive debugger whenever a page raises an exception, and restarts the server whenever you make changes to the code.

    flask --app lipila --debug run

contributors

Sangwani Peter Zyambo admin@email.com