Main branch
Develop branch
The NYC Soundscape Explorer is an interactive web application that allows users to explore and experience the diverse soundscape of New York City.
- Interactive Map: A map of NYC with clickable neighborhoods to explore different sounds.
- Sound Playback: Ability to listen to ambient sounds specific to selected areas.
- Noise Data Visualization: Display of noise complaint data and sound levels across the city.
- Search and Filter: Users can filter sounds by type (e.g., traffic, music, nature) and location.
- User Authentication: Save settings, contribute content, and participate in discussions.
- Chat Room: Facilitate real-time community engagement and discussions.
- Residents: Understand neighborhood noises using heat map for better living decisions.
- Researchers & Urban Planners: Study noise pollution and urban planning.
- Tourists: Explore NYC’s soundscapes as part of their travel experience.
- Community Activists: Advocate for noise reduction and improved living conditions.
- General Public: Engage with NYC’s diverse auditory experiences.
wed-fall24-team1/
├── .ebextensions
├── .elasticbeanstalk
├── .github/ # GitHub configuration files
├── chatroom/ # App that handles chatroom logic
├── core/ # Main python package for the project
├── data_collection/ # Contains scripts to load NYCSoundData
├── sounddata_s3/ # Contains scripts to add NYCSoundData to AWS S3
├── soundscape/ # Main app that handles frontend logic
│ ├── migrations/
│ ├── static/ # Static files (JS, images)
│ ├── templates/soundscape # HTML templates for front-end
│ ├── tests/
│ ├── admin.py
│ ├── apps.py
│ ├── forms.py
│ ├── models.py
│ ├── urls.py
│ └── views.py
├── soundscape_user # Contains user sound backend logic and script to add new sound descriptors
├── .coverage
├── .flake8 # Setup for Python linting and formatting
├── .gitignore
├── .travis.yml # Setup for Travis CI / CD
├── Procfile
├── README.md
├── manage.py # Django management script
├── pytest.ini
└── requirements.txt # Requirements to be installed with pip
- Python 3.x (Recommended: 3.11.x)
- pip
- Virtual Environment (Recommended)
- AWS account
Clone the repository:
git clone https://github.com/gcivil-nyu-org/wed-fall24-team2.git
cd wed-fall24-team2
Create virtual environment:
python -m venv env
Activate the virtual environment:
source env/bin/activate # On Windows: venv\Scripts\activate
Install required packages:
pip install -r requirements.txt
Run database migrations:
python src/manage.py makemigrations
python src/manage.py migrate
Configure AWS:
aws configure
Enter your AWS credentials when prompted:
- AWS Access Key ID
- AWS Secret Access Key
- Default region name (e.g., us-east-1)
- Default output format (json recommended)
Configure environment files:
Obtain an API Key from Mapbox. Then create a ".env" file in the root directory of the repo, and paste some contents in like this, but using your own api key:
# this is the ".env" file:
MAPBOX_ACCESS_TOKEN="__________"
...
Add database configuration to the ".env" file to access your local database:
...
DB_ENGINE='your_db_engine' # e.g., django.db.backends.postgresql_psycopg2
DB_NAME='your_db_name' # e.g., postgres
DB_USER='your_user_name' # e.g., postgres
DB_PASSWORD='your_password' # e.g. postgres (not recommended)
DB_HOST='your_rds_host_name' # e.g. nycsoundscape.c1aisqasc3u5.us-east-1.rds.amazonaws.com
...
Add AWS configuration to the ".env" file
...
AWS_ACCESS_KEY_ID='your_aws_access_key'
AWS_SECRET_ACCESS_KEY='your_aws_secret_access_key'
AWS_S3_REGION_NAME='your_aws_s3_region' # e.g., us-east-1
AWS_STORAGE_BUCKET_NAME='your_aws_s3_bucket_name' # e.g., nyc-sound-files
Run the app
python manage.py runserver
The application will be available at http://127.0.0.1:8000/
This project uses flake8
and black
for linting and formatting Python files and djlint for HTML templates. To run linting locally:
black .
flake8
To run coverage tests locally:
coverage run --source='src' src/manage.py test
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request to the develop branch
- Sonia Susanto: Product Owner
- Dipesh Parwani
- Manav Parikh
- Thejaswini D M
- Tzu-Yi(Belle) Chang
- Yashwanth Alapati