Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
SurajBhari committed Nov 15, 2023
1 parent a769c2b commit bdbc448
Showing 1 changed file with 54 additions and 50 deletions.
104 changes: 54 additions & 50 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,67 +1,71 @@
# Real Estate Managment System
A fully fledged system with frontend and backend helping you manage sales in a real estate </br>
Each plot have 3 properties -> 1. Its number, 2. The sector it is in, 3. The Colony it is in.</br>

# Download
Download fom latest automatic build from here - >
# Real Estate Management System

Experience a comprehensive system with both frontend and backend capabilities designed to streamline the management of real estate sales.

Each plot is characterized by three key properties:
1. Plot Number
2. Sector
3. Colony

## Download

Download the latest version from the automatic build:

[![Package Application with Pyinstaller](https://github.com/SurajBhari/real_estate_managment/actions/workflows/build.yml/badge.svg)](https://github.com/SurajBhari/real_estate_managment/actions/workflows/build.yml)

# Login
![image](https://github.com/SurajBhari/real_estate_managment/assets/45149585/b76210f9-a1ff-442f-a284-3fb6ea4bfdbb)
If you are using the default hash then you will get the password in console.
## Login
![Login Image](https://github.com/SurajBhari/real_estate_managment/assets/45149585/b76210f9-a1ff-442f-a284-3fb6ea4bfdbb)

If using the default hash, the password will be displayed in the console.

*Optional (but recommended):*
Change the hash [here](https://github.com/SurajBhari/real_estate_managment/blob/f180d941e2dbe36947687d5649467675497b3465/validate.py#L5) and use [PyOTP](https://github.com/pyauth/pyotp#google-authenticator-compatible) to enhance security by adding it to your Google Authenticator app.

## Design Choice
The system, designed for single-user local management, avoids unnecessary complications by opting for a single-user approach without usernames.

## Search
![Search Image](https://github.com/SurajBhari/real_estate_managment/assets/45149585/ab6c0b13-89e1-435a-b99b-3cd5c8246a53)

Optional (you should) </br>
Change the hash from [here](https://github.com/SurajBhari/real_estate_managment/blob/f180d941e2dbe36947687d5649467675497b3465/validate.py#L5) </br>
and then use [PyOTP](https://github.com/pyauth/pyotp#google-authenticator-compatible) to add it to your google authenticator app on your phone. </br>
The search functionality offers nine columns for filtering. For instance, you can search for an advisor like "John Harris" with the status "booked."

Design choice</br>
Why not use username password approach</br>
-> The system is meant for only 1 user to use at a time. and is used only by managers mostly locally. so adding a username password is just adding complications. </br>
## New Sale
![New Sale Image](https://github.com/SurajBhari/real_estate_managment/assets/45149585/e1e73b5a-4d00-4552-94b8-7db27455cf13)

# Search
![image](https://github.com/SurajBhari/real_estate_managment/assets/45149585/ab6c0b13-89e1-435a-b99b-3cd5c8246a53)</br>
Search consists of 9 columns. on which you can apply filter with each other at same time. </br>
ex. Advisor `John Harris` having the status of `booked`.</br>
The new sale or modification feature allows for easy property status changes, and opting for "available" or "not for sale" removes all associated attributes.

# New Sale
![image](https://github.com/SurajBhari/real_estate_managment/assets/45149585/e1e73b5a-4d00-4552-94b8-7db27455cf13)</br>
New sale or modification allows you to change property of a field. changing this to `available` or `not for sale` will remove every attribute.</br>
## Receipt
![Receipt Image](https://github.com/SurajBhari/real_estate_managment/assets/45149585/ff080408-e2a4-4399-9c27-9f430f3d9151)

Previously I had option to allow entering how many EMI months an EMI can be. </br>
but later decided to only store whether it is EMI or not. if it is then you can get an estimate of how much money is left from the user to be paid. </br>
Each entry of money received from the buyer is recorded as a receipt. It provides insights into pending and received amounts.

# Receipt
![image](https://github.com/SurajBhari/real_estate_managment/assets/45149585/ff080408-e2a4-4399-9c27-9f430f3d9151)</br>
A receipt is every entry of money recieved from the buyer. each booking amount will have receipt. each EMI payment will have a receipt. if done correctly then each receipt numbers are sequential. </br>
Allows you to see list of receipts generated and mode of it. also gives you insight how much is yet to be recieved and how much of it is already recieved.</br>
## Incentive
![Incentive Image](https://github.com/SurajBhari/real_estate_managment/assets/45149585/b4af55dc-dac1-437e-9c7e-678e515182f4)

# Incentive
![image](https://github.com/SurajBhari/real_estate_managment/assets/45149585/b4af55dc-dac1-437e-9c7e-678e515182f4)</br>
Each sell the company gives a x % of the sale to the advisor as incentive. this x can vary on many factors so its often dynamic.</br>
The Incentive is calculated based of the date of receipt. regardless of the sale date. A % is also given on EMI amount recieved. if the advisor missed any EMI amount to be recieved. it would be shown in `Uncollected` Section</br>
Advisors receive a percentage of the sale as an incentive, calculated based on the date of receipt. The system also tracks uncollected incentives.

# EMI
![image](https://github.com/SurajBhari/real_estate_managment/assets/45149585/2b639236-4e84-4b0c-893c-d25aab5f4105)</br>
EMI details tells how much EMI amount we have received for a said advisor in a said month. advisor can be none to show all.</br>
The red one means uncollected.</br>
## EMI
![EMI Image](https://github.com/SurajBhari/real_estate_managment/assets/45149585/2b639236-4e84-4b0c-893c-d25aab5f4105)

EMI details showcase received amounts for a specific advisor in a given month, with uncollected payments highlighted in red.

# Global Features
Each of `EMI` `Incentive` `Receipt` have option to export to xlsx format later to be printed.</br>
Backup feature on Home page allows you to manually call for a backup that is stored in the `backup` directory.</br>
alongside this any change in data is done after a backup is taken. </br>
only 1 backup per minute is permitted to prevent clogging of data.</br>
## Global Features
- Export options for EMI, Incentive, and Receipt entries in xlsx format.
- Manual backup option on the home page, ensuring data integrity.
- Changes in data trigger an automatic backup.

# Future
I really want to make some statistics out of this. showcasing the growth of company and sales but am currently busy</br>
## Future Plans
While future updates may include statistical insights into company and sales growth, the current focus is on stability and core functionality.

## Compiling
1. Install requirements from `requirements.txt` using `pip install -r requirements.txt`.
2. Install `pyinstaller` with `pip install pyinstaller`.
3. Compile using the command: `pyinstaller --onefile --add-data "templates;templates" --add-data "static;static" --add-data "scripts;scripts" main.py`.
4. Move `backup`, `export` folders, and `data.json` to the newly created `dist` folder.
5. Use `main.exe` from the `dist` folder.

# Compiling
1. Install requirements from requirements.txt `pip install -r requirements.txt`</br>
2. Install `pyinstaller` `pip install pyinstaller`</br>
3. `pyinstaller --onefile --add-data "templates;templates" --add-data "static;static" --add-data "scripts;scripts" main.py`</br>
4. Move `backup`, `export` folder AND `data.json`to newly created `dist` folder.</br>
5. Use `main.exe` from `dist` folder.</br>
## Note
This system was designed for local use and has not been exposed to the internet. While some security measures are in place, responsible usage is advised.

# Note
This system was never exposed to the internet nor it was made with keeping that in mind. although some security measures are there but that doesn't ensure it. please use responsibily.
---

0 comments on commit bdbc448

Please sign in to comment.