An app which facilitates safe, convenient access to public restrooms for transgender, intersex, and gender nonconforming individuals, and individuals with disabilities and/or limited mobility.
Try it out: https://mshirk-flusher.herokuapp.com/
- Use current location or specified location to search for nearby restrooms, with data supplied by Refuge Restrooms API.
- Filter results by: unisex restrooms, accessible restrooms, and changing tables
- Results displayed in a list and map, via Mapbox API
- View restroom details and notes, if available
- Save searches for easy recall
Sign up with a username, email and password. Passwords are hashed using bcrypt.
User can search by current location or specified location, and filter results. Results are displayed in a list and on a map, including basic information location name and address, with collapsible details and directions, if available.
If registered, a user can save a search to their profile.
Displays saved searches with the ability to edit or delete. Users can also update their username or email.
- Frontend: JavaScript, Bootstrap, AJAX, HTML, CSS
- Backend: Python, Flask, PostgreSQL, SQLAlchemy
- Testing: unittest Framework, including unit and integration tests
To run locally, you will need a Mapbox access token.
- Clone repository
$ git clone https://github.com/mshirk2/capstone-1
- Navigate to project directory
$ cd capstone-1
- Create tokens.py file
$ touch tokens.py
- Add secret key (any password of your choosing) and Mapbox token to tokens.py file
SECRET_KEY = '[Secret key of your choosing]' MAPBOX_ACCESS_TOKEN = '[Your Mapbox access token]'
- Create python virtual environment
$ python -m venv venv
- Activate virtual environment
$ source venv/bin/activate
- Install packages
(venv) $ pip install -r requirements.txt
- Start PostgresQL
(venv) $ sudo service postgresql start
- Create PostgreSQL database
(venv) $ createdb flusher
- Run seed.py file to create database tables
(venv) $ python seed.py
- Run application
(venv) $ flask run
After installing locally, you can run tests as follows:
- Create PostgresQL test database
(venv) $ createdb flusher-test
- Run seed.py file to create database tables
(venv) $ python seed.py
- Run all tests
(venv) $ python -m unittest
- Or run a specific test file
(venv) $ python -m unittest test/<file.py>
Credits to Tim Birkmire for the overall structure of the app. You can view his project here.