Skip to content

rjvkr2021/Unified-Portal-For-Hall-Automation

 
 

Repository files navigation

Unified Portal For Hall Automation

This application was made as a course project of CS253A: Software Development and Operations in spring 2022 under the guidance of Dr. Indranil Saha.

Unified Portal for Hall Automation is a merged platform designed for the residents of various halls at IITK to access day to day hall functionalities. This portal aims to digitalize various services provided by the hall that includes mess, canteen and various other services. Through this portal, you can book your mess extras, order your canteen food, request room cleaning, book various Hall facilities, and many more.

Broadly, the application will support the following:

  • Students can pre-book extras in mess and order food in canteen.
  • Students can book the hall's guest room, gym and sports courts online and also schedule cleaning services.
  • Students can access their pending mess and canteen bills.
  • Special permissions have been provided to the Hall Manager, Mess manager, Canteen Owner and the sports secretary to facilitate all these services.

Group Details

Name Roll no. Email Id
Soham Amit Bharambe 210264 [email protected]
Divyansh 210355 [email protected]
Divyansh Chhabria 210356 [email protected]
Jhalak Sharma 210474 [email protected]
Kriti 210534 [email protected]
Kumar Harsh Mohan 210543 [email protected]
Labajyoti Das 210552 [email protected]
Pranjal Singh 210744 [email protected]
Rajeev Kumar 210815 [email protected]
Sandeep Nitharwal 210921 [email protected]

Deployment

The web app is deployed at: https://upha.pythonanywhere.com/

How to run the software locally?

  • Make sure you have python and pip installed in your system.

Clone the repository-

git clone https://github.com/divc13/Unified-Portal-For-Hall-Automation

Run following commands to start the backend server-

cd Unified-Portal-For-Hall-Automation
pip install -r requirements.txt
python manage.py collectstatic

Here you should open the UPHA/settings.py file and add the gmail id and the app password for the same gmail in the lines 152 and 153 respectively.

For App password, one must first make a 2 factor password in from google accounts.

python manage.py makemigrations
python manage.py migrate
python manage.py runserver

Go on the localhost web address which must have been printed on the terminal.

Demo run

Screenshot

Software Requirement Specification Document

A software requirements specification (SRS) is a document that describes what the software will do and how it will be expected to perform. It also describes the product's functionality to fulfill all stakeholders needs.

Link to SRS: UPHA SRS v1.0 | The Tech Titans

Software Design Document

A software design document (SDD) describes software created to facilitate analysis, planning, implementation, and decision-making. This explains how a software product or a feature will be built to meet a set of technical requirements. If the requirements document describes the "what" of your project, the design document focuses on the "how".

Link to SDD: UPHA SDD v1.0 | The Tech Titans

Software Implementation Document

A software implementation document (SID) is a document that describes how a software product is built to meet a set of technical requirements. This document talks about implementation details like integration, CI/CD, hosting, VCS; it provides a surface-level overview of codebases and completeness of the application.

Link to SID: UPHA SID v1.0 | The Tech Titans

Testing Document

Test documentation includes all files that contain information on the testing team's strategy, progress, metrics, and achieved results. The combination of all available data serves to measure the testing effort, control test coverage, and track future project requirements.

Link to Test Doc: UPHA SRS v1.0 | The Tech Titans

User Manual Document

A manual is a document that provides instructions or guidelines on how to perform an activity and serves as a reference book on the activity.

Link to User Manual: UPHA SRS v1.0 | The Tech Titans

Code Structure

The project has been divided into following small apps-

  • Mess - It contains implementation of functionalities related to mess, i.e., student can view regular menu, book extras, view order history, and apply for rebate, and owner can modify regular menu and extras, react on rebate requests, view students’ bill, view extras orders, view feedback on regular menu, and modify BDMR.
  • Canteen - It contains implementation of functionalities related to canteen, i.e., students can place order, view pending order, and view order history, and owner can react to orders, modify menu, and view students’ bill.
  • Booking - It contains implementation of functionalities related to booking, i.e., guest room booking, sports equipment issue, and sports court booking.
  • Cleaning - It contains implementation of functionalities related to cleaning, i.e., lodge request and view past requests.
  • Login - It contains implementation of functionalities related to login, i.e., login old user, new user registration, and reset password.
  • My_Account - It contains implementation of accounts management of the students, i.e., mess bill, canteen bill, and electricity bill.
  • Home - It contains implementation of the homepage.

Three more folders and two more files are also present in the repository-

  • templates - It contains HTML files of base template.
  • UPHA - It contains files which are necessary to run the web app.
  • manage.py - A command-line utility that lets us interact with this Django project in various ways such as run server, create new app, etc.

Each app mentioned above contains following folders and files-

  • migrations - It propagates changes we make to our models (adding a field, deleting a model, etc.) into our database schema.
  • templates - It contains HTML files of web pages of the respective app.
  • static (present only in Home and Login) - It contains CSS files of web pages and also images related to them of the respective app.
  • __init__.py - It is an empty file that tells Python that this directory should be considered a Python package.
  • admin.py - It contains the administration interface for our app. The admin interface is a web-based interface that allows authorized users to manage the data in your app, including creating, editing, and deleting records.
  • apps.py - It contains the configuration for a specific Django app. It is used to customize various aspects of the app's behavior.
  • models.py - It contains the structure of our database tables using Python classes. Each class represents a database table, and the attributes of the class define the fields of the table.
  • tests.py - It is a module where we write test cases for our application. It should contain one or more classes that inherit from Django's TestCase class. Each class represents a group of related tests, and each method within the class represents a specific test.
  • urls.py - It contains the URL patterns for our application. Each URL pattern maps a URL to a specific view, which generates the HTTP response for that URL.
  • views.py - It contains the logic for handling requests and generating responses. Each view function takes a request object as its first argument and returns an HTTP response object.

Directory Hierarchy

|—— .gitignore
|—— Booking
|    |—— admin.py
|    |—— apps.py
|    |—— migrations
|        |—— __init__.py
|    |—— models.py
|    |—— templates
|        |—— booking_error.html
|        |—— Booking_manager.html
|        |—— courts.html
|        |—— guestroom.html
|        |—— secy_add_equipments.html
|        |—— secy_validate_request.html
|        |—— secy_validate_return.html
|        |—— sports_equipments.html
|    |—— tests.py
|    |—— urls.py
|    |—— views.py
|    |—— __init__.py
|—— Canteen
|    |—— admin.py
|    |—— apps.py
|    |—— migrations
|        |—— __init__.py
|    |—— models.py
|    |—— templates
|        |—— Owner_Modify_Menu.html
|        |—— Owner_New_Order.html
|        |—— Owner_Pending_Order.html
|        |—— Owner_Students_Bill.html
|        |—— Student_Cart.html
|        |—— Student_Orders_History.html
|        |—— Student_Pending_Order.html
|        |—— Student_Place_Order.html
|    |—— tests.py
|    |—— urls.py
|    |—— views.py
|    |—— __init__.py
|—— Cleaning
|    |—— admin.py
|    |—— apps.py
|    |—— migrations
|        |—— __init__.py
|    |—— models.py
|    |—— templates
|        |—— Cleaning_hall.html
|        |—— Lodge_Request.html
|        |—— Past_Request.html
|        |—— Pending_Request.html
|    |—— tests.py
|    |—— urls.py
|    |—— views.py
|    |—— __init__.py
|—— Home
|    |—— admin.py
|    |—— apps.py
|    |—— migrations
|        |—— __init__.py
|    |—— models.py
|    |—— static
|        |—— hall_image.jpg
|    |—— templates
|        |—— Home.html
|    |—— tests.py
|    |—— urls.py
|    |—— views.py
|    |—— __init__.py
|—— Login
|    |—— admin.py
|    |—— apps.py
|    |—— migrations
|        |—— __init__.py
|    |—— models.py
|    |—— static
|        |—— Login
|            |—— upha.png
|            |—— vector.png
|    |—— templates
|        |—— Login.html
|        |—— OTP.html
|        |—— Reset_Password.html
|        |—— Set_Password.html
|        |—— SignUp.html
|    |—— tests.py
|    |—— urls.py
|    |—— views.py
|    |—— __init__.py
|—— manage.py
|—— Mess
|    |—— admin.py
|    |—— apps.py
|    |—— migrations
|        |—— __init__.py
|    |—— models.py
|    |—— templates
|        |—— Manager_Extra_Items.html
|        |—— Manager_Modify_BDMR.html
|        |—— Manager_Modify_Menu.html
|        |—— Manager_Rebate_Requests.html
|        |—— Manager_Students_Pending_Bills.html
|        |—— Manager_View_Feedback.html
|        |—— Manager_View_Orders.html
|        |—— Student_Apply_For_Rebate.html
|        |—— Student_Booked_Extras.html
|        |—— Student_Book_Extras.html
|        |—— Student_Order_History.html
|        |—— Student_Regular_Menu.html
|    |—— tests.py
|    |—— urls.py
|    |—— views.py
|    |—— __init__.py
|—— My_Account
|    |—— admin.py
|    |—— apps.py
|    |—— migrations
|        |—— __init__.py
|    |—— models.py
|    |—— templates
|        |—— Canteen.html
|        |—— Mess.html
|    |—— tests.py
|    |—— urls.py
|    |—— views.py
|    |—— __init__.py
|—— templates
|    |—— error.html
|    |—— staff_base.html
|    |—— static
|        |—— booking__1__1.png
|        |—— football.png
|        |—— home_1.png
|        |—— hostel.png
|        |—— household_1.png
|        |—— logo_black_1.png
|        |—— main_display.png
|        |—— power_1.png
|        |—— rectangle_5.png
|        |—— staff_base.css
|        |—— student_base.css
|        |—— styles.css
|        |—— wallet_1.png
|    |—— student_base.html
|—— UPHA
|    |—— asgi.py
|    |—— settings.py
|    |—— urls.py
|    |—— wsgi.py
|    |—— __init__.py

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 54.9%
  • HTML 39.7%
  • CSS 5.4%