Skip to content

This is the repository for class software development Group 5

Notifications You must be signed in to change notification settings

sambuild04/IST-303-Group5

Repository files navigation

IST-303-Group5

PROJECT DESCRIPTION

FinalList is a web application that enables users to identify their ideal housing option. Users can generate their personalized housing lists based on their inputed parameters such as

  • crime rate risk levels and proximity to area amenities (schools, grocery stores)
  • recreation space (hiking and biking trails, parks, etc.) that coincide with selected rental or sales ranges *bedroom/bathroom combinations and other housing-related specifications.

GROUP NAME:

Team FinalLists

GROUP MEMBERS:

The members of this group are Sam Feng, Alex Jin, Kieu Lara, Rutuja Ganesh Limaye, and Phillip Wang.

ROLES

  • Sam - Web Developer
  • Alex - UI Designer
  • Kieu - Product Owner/Project Manager
  • Rutuja - Database Developer
  • Phillip - Web Developer

STAKEHOLDERS

  • People who are looking for a place to live
  • Landloards and proerty owners
  • Real estate agents/professionals

USER STORIES

  • Any user should be able to search by location and property features only
  • Any user would be able to input their preference parameters when they open the web app as an added feature
  • A registered user is able to save listings, contact housing hosts and access other web features on the web pages
  • A user can make a change to their preferences without starting over
  • A user can see both a map view and text listings of search results
  • A user should be able to sort the listings based on their personalized rankings preference

TECHNOLOGY

  • Frontend: HTML, CSS, JavaScript
  • Backend: Python, Django
  • Database: Microsoft Azure SQL

PROJECT MANAGEMENT/COLLABORATION TOOLS

PARAMETERS WE COLLECT FROM USERS

  • Distance to certain places, areas, etc...
  • Price Preference
  • Safety Level Preference
  • Purpose: Sell, rent, or buy?
  • Location

PROJECT REQUIREMENTS:

User stories will be drafted and appropriately scheduled in order to organize related activities throughout this project time-frame. The user stories will center around requirements for what the user interface will include, what the web application ranking options will include, as well as accessiblity to the web application. Data sources will be identified, validated, and documented to ensure that the web application is held up by by realistic data or inferred by real data.

PROJECT CONCEPT PRESENTATION PART A FEEDBACK AND NEXT STEPS:

  • Stakeholder feedback via survey responses from classmates will be sought. A survey will be drafted and distributed to refine preference categories.
  • propertyfinder.ae was suggested for review for ideas.
  • Looking beyond API sources was suggested for data sources to ensure un-biased data is used.
  • Query on what indexes will be used was brought up to offset implied or direct bias.
  • Further exploration on how ranking (1 through 5 versus most importnat to least important, etc.) should be set to ensure the recommendations provided by the search is not too restrictive.

PROJECT STATUS TRACKING (W/ BURNDOWN CHART)

See https://github.com/sammycool04/IST-303-Group5/blob/master/Project%20Hours%20Tracking.xlsx

TEAM MEETING NOTES

Agenda Link: https://drive.google.com/open?id=1zvve-Ctsv2qc7kWy-xecymomQILijSlj

TO RUN THE APPLICATION:

  1. Install Python 3

    • On macOS using Homebrew:
     /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
     brew install python
    • On Linux:
     sudo apt-get install python3
  2. Install Microsoft ODBC driver for SQL Server ( for project's database)

    • macOS:
     brew install msodbcsql17 mssql-tools
    • Linux (Ubuntu 19 as example)
     #Ubuntu 18.04
     curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
     sudo apt-get update
     sudo ACCEPT_EULA=Y apt-get install msodbcsql17
     # optional: for bcp and sqlcmd
     sudo ACCEPT_EULA=Y apt-get install mssql-tools
     echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
     echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
     source ~/.bashrc
  3. Install Python Virtual Environment

    • Windows:
     python3 -m pip install virtualenv
    • non-Windows:
     python3 -m pip install --user virtualenv
  4. Create & activate virtual environment (named env)

     python3 -m venv /path/to/new/virtual/environment/env
     source env/bin/activate
  5. Clone the project inside virtual environment git clone git@github.com:sammycool04/IST-303-Group5.git

  6. cd to the project folder & install required python packages

     cd IST-303-Group5
     python -m pip install -r requirements.txt
  7. Start the project

     python manage.py runserver
  8. To access the web app, open your web browser, enter: 127.0.0.1:8000

TESTING:

  • We use pytest-django, mixer and pytest-cov for our testing
  • If you haven't installed the packages, in your terminal, type:
pip install pytest-django
pip install mixer
pip install pytest-cov
pytest-cov 
or 
pytest

LESSONS LEARNED: SOFTWARE DEVELOPMENT

  • Identify the most appropriate platform to develop and test your code and house your data as early as possible in the process.
  • Refer back to the initial user stories to help stay focused on what drove the development in the first place.
  • Have a clear idea of everyone’s roles are and have everyone actively take ownership of those roles but allow for some flexibility as needed in where help can be offered.
  • Allow for learning in estimating hours.
  • Be flexible in what tools can be used and new ideas.
  • Software development is a team effort.
  • Agile methods are not always easy to adhere to if all team members are not on the same page, otherwise, staying agile would be effective.