abekek / numa-rdma-cse341

CSE 341 Final Project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CSE 341 Final Project
Student name: Alibek Kaliyev
Email: alk224@lehigh.edu
------------------------------

This is the main README file for the project where I will describe the project and its components.

The program has 4 interfaces:
    1. Property Manager Interface
        - Recording visit data
        - Recording new lease data
            - Here you can also create a new tenant if it's not found
        - Recording the move out
    2. Tenant Interface
        - First, there is login/registration process for the tenant
            - If you are a new tenant, you can register yourself and set a password
            - If you are an existing tenant, you can login with your tenantID and password
                - All tenants who did not change a password have a default password of "qwerty12345"
            - All passwords are encrypted using SHA-256 and stored in the database
        - Then, after logging in, you can do the following:
            - View your personal data
            - View apartments you are currently renting
            - Update your personal data
            - View your leases
                - The program will show all leases that you have
                - Inside each lease, you can:
                    - Check payment status
                    - Make a rental payment if you haven't paid yet
                    - Add a person/pet
                    - Set a move out date
                    - View your other lease information
            - Update your password
    3. NUMA Manager Interface
        - Add a new Property
            - After answering a few questions, the program will create a new property
            - The program will also call PL/SQL procedures to populate the property with apartments and amenities
                - It is based on user's provided information
        - Edit a Property
        - View all properties
        - Raise a rent
            - But only if noone is renting the property
    4. Business Manager Interface
        - View statistics on general NUMA system
        - View statistics on apartments
        - View statistics on tenants

Things that I did differently from the ER Diagram:
    - 'Employer' relation. While it is still stored in the database, I decided not to involve employers in anything.
       In my opinion, it is not necessary.
    - I added amnt_id to the amenity table, since I understood that for each property I need to have a unique identifier for each amenity.
    - I added a 'password' column to the tenant table, since we need it for registration/login with SHA-256 encryption.

--------------------------------------------------------------------------------------------------------------------------------------------
Compilation and running:

You can compile and launch the program by simply running the run.sh file. It has a make command that will automatically compile the program.
Or you can separately compile with makefile using the 'make' command.

--------------------------------------------------------------------------------------------------------------------------------------------
Files and data generation:

All the data generation code is in 'datagen' folder. It was generated using random data from Mockaroo.
I also put the PL/SQL code in 'other/plsql' folder, and SQL code in 'other/sql' folder.

About

CSE 341 Final Project


Languages

Language:Java 99.6%Language:Makefile 0.3%Language:Shell 0.1%