APIs for the website of a real estate agency to monitor property under the agency
This repository contains a collection of APIs used in the building of real estate agency's website. The APIs were used for updating and entering data as well as monitoring property under the agency. These APIs were built using Python libraries. Every time an API is called, a message is logged as regards the activity of the API (if it is a POST or A GET action) and the status of the call (failed or successful) along with a request ID. The log messages are uploaded to a table in a MySQL database (in this case, the table is called api_audit_log). The API endpoints can then be tested with the use of a tool like Postman. The APIs upload entered details into a MySQL database and when there are data requests, it accesses the same database to pull the information required.
** Files**
Login.py: API for login to the website.
LocationList.py: API for getting a list of locations for a particular agency or user. That is, the locations of the properties assigned to that agency or user.
Infrastructure_classification.py: API for getting the classification of a particular property. If is residential or commercial
InfrastructureLocationCount.py: API for tracking the count of properties per user or agency as they exist.
statusList.py: API for getting the status of different properties. That is, if the property is vacant or occupied.
InfrastructureEnumeration.py: API that handles the creation of new details for a particular property.
infrastructure_vacant.py: API that gets the list of properties that are vacant.
payers_list.py: API that gets the list of payers on the system.
Occupant_payersEnumeration.py: API for mapping a payer to a property or multiple properties.
Payer_Infrastructure_List.py: API for showing the mapping of ONE payer to a property or multiple properties.
View_bill_due.py: API for showing what the bill due on a particular property or properties if applicable.
Lodge_Payment.py: API for making a payment using either a payer reference number or infrastructure reference number.
Print Receipt_Infrastructure.py: API for printing a receipt of payment for a particular property/infrastructure.
Print Receipt_Payer.py: API for printing receipt of last payment for a particular payer.
For all these APIs, more details about them are captured as comments and notes in their files.
Dependencies
The following Python libraries were used for this project:
mysql.connector : MySQL driver written in Python for connecting to a MySQL DB
logging: logging package for Python for creating and generating log messages
flask: For API creation
jsonify: For serializing given arguments as JSON
request: Used by default in Flask for remembering the matched endpoint and view arguments.
logging.handlers: Additional handlers for the logging package.
RotatingFileHandler: Handler for logging to a set of files, which switches from one file to the next when the current file reaches a certain size.
datetime: For accessing date/time values and other related types.
uuid: For creating universally unique identifiers.
requests: HTTP library, written in Python.
time_delta: For getting the difference between 2 datetime objects.
Usage
To run the analysis on your local machine, follow these steps:
Clone this repository to your local machine using the following command:
bash
Copy code git clone https://github.com/Olatokunbo360/Real-Estate-Agency-APIs.git
Navigate to the project directory:
bash
Copy code cd Real-Estate-Agency-APIs
Install the required dependencies. You can use the following command to install dependencies using pip:
Copy code pip install -r requirements.txt
Once the dependencies are installed, then you can begin checking the files. Please follow the instructions and comments in the files for more information on the APIs
Contributing
Contributions to this project are welcome. If you have suggestions for improvements or new analyses, please feel free to open an issue or submit a pull request.
By [Yusuf Sanni] - [yusufsanni2003@yahoo.co.uk]