Skip to content

uchicago-capp-30320/apt-plus

Repository files navigation

Apartments Plus

Apartments Plus Logo

Tenants struggle to navigate scattered information when searching for a new apartment. Without a centralized solution to aggregate key information, renters must take significant time to research or risk unforeseen downsides. This is exacerbated by popular commercial platforms' incentive to hide negative aspects of their listings. As generalist platforms, they also lack granularity in neighborhood details, for example, a distance to grocery stores known to local residents.

Apartments Plus aggregates data that mainstream rental sites often do not display, such as building defects and landlord reputations. Apartments Plus currently has data on Chicago, with a special focus on tenants in university neighborhoods like Hyde Park, which welcome a steady influx of new tenants every year.

We're online at aptpl.us.

MIT License Build Status

Contributing

As of May 26, 2025, Apartments Plus is currently in development stage. We welcome contributions from anyone as long as it aligns with our contribution guidelines and is well constructed. That includes being written by humans, not AI.

To get started, find an issue on github, submit a PR, and it will be reviewed by a member of our team. If you have any questions, reach out in the issues tab, or over email.

Installation

As of May 26, 2025, Apartments Plus is currently in development stage. To contribute:

  1. Install uv, if you haven't already.
  2. Install GDAL, an open source geodata library, needed to run the server locally. See our help section for some more specific instructions.
  3. Run uv sync to set up the relevant Python environment
$ uv sync

You're good to go to start editing code! If you want to run the project locally, you'll need a bit more data:

  1. Set up an .env file in DEBUG=True and relevant information on email and server addresses. These will be shared by current project administrators.
  2. Launch the server locally.
$ uv run manage.py runserver

And finally, we use playwright for frontend testing. Therefore, you'll need to install playwright locally:

  1. Install playwright
$ uv run playwright install

Tech Stack

This is a Django application that uses plain JavaScript and some HTMX to handle frontend functionality. Our site is styled with Bulma. We use Airflow and Python >3.10 for data updates. Our data is stored on a postgreSQL server with postGIS for geospatial support.

We use pytest and playwright for testing.

Folder Structure

We use our application folder to locate specific functionality. Please remember to follow that.

apt-plus/
├── .github/
│   └── workflows/  //   GitHub CI/CD files
├── apt_app/            // Django Application folder
│   ├── management/ //   Data management commands for Django
│   ├── views/      //   Each view is it's on .py file
├── config/             //   Django config files
├── docs/               //   Documentation, such as for APIs
├── notebooks/          //   Notebooks for data testing
├── scripts/            //   Data management
├── static/             // Static elements
│   ├── css/        //   All CSS styling
│   ├── js/         //   JavaScript functionality
│   └── images/     //   Static images
├──  templates/         // All HTML templates
└──  tests/             // All test files for testing

Contributors

Contributors are listed, with no significance to the order of names:

Who What
Michael Rosenbaum Design / Frontend & Project Management
Arkadeep Bandyopadhyay Backend / Frontend engineering & Chief Architect
Miguel Perez Backend / GIS specialist & Backend / Data engineer
Zewei (Whiskey) Liao Lead QA Engineer & Backend Engineer
Rodrigo Rivarola Front & Backend GIS Specialist
Magdalena Barros Frontend Lead – Engineering & Design
Fuyuki Tani Data Engineer
Keling Yue Lead Backend Engineer & Data Engineer

Appendix: GDAL Set-up

For Mac Users: GDAL Setup

If you're using a Mac, follow these steps:

This ensures Django can locate the required GDAL and GEOS libraries for geospatial functionality.

Reference: Django Documentation: GeoDjango Installation

  1. Install Homebrew (if you don't have it yet):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Install GDAL using Homebrew:
brew install gdal
  1. Add the following to your .env file:
# GDAL/GEOS Settings
GDAL_LIBRARY_PATH=/opt/homebrew/lib/libgdal.dylib
GEOS_LIBRARY_PATH=/opt/homebrew/lib/libgeos_c.dylib
DYLD_LIBRARY_PATH=/opt/homebrew/lib

For Windows Users: GDAL Setup

  1. Install GDAL

OSGeo4W's default installation for Windows will include the relevant packages.

  1. Add GDAL to your PATH variable

Then, your computer will need to be able to reference GDAL's functionality. To do so, you should add the file folder to your PATH variable. If you let OSGeo4W install it, that will be "C:\OSGeo4W\bin" on most computers.

About

Apartments Plus aggregates information that is helpful to know before you rent

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 9