A web application built with Django that helps users locate and access public services in New York City. This tool aims to simplify the process of finding essential public services for NYC residents.
- User account management
- Public service location finder
- Service information directory
- Interactive map interface
- User-friendly search functionality
- Backend Framework: Django
- Database: Amazon DynamoDB
- Frontend: HTML, CSS, JavaScript
- Version Control: Git
- CI/CD: Travis CI
- Python 3.x
- pip
- virtualenv (recommended)
- AWS account with DynamoDB access
- AWS CLI configured
- Clone the repository
git clone [repository-url]
cd wed-fall24-team1
- Create and activate virtual environment
python -m venv venv
source venv/bin/activate # On Windows use: venv\Scripts\activate
- Install dependencies
pip install -r requirements.txt
- Configure AWS credentials
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)
- Set up environment variables
export AWS_ACCESS_KEY_ID='your_access_key'
export AWS_SECRET_ACCESS_KEY='your_secret_key'
export AWS_DEFAULT_REGION='your_region'
- Run development server
python manage.py runserver
The application will be available at http://localhost:8000
wed-fall24-team1/
├── .github/ # GitHub configuration files
├── accounts/ # User authentication and management
├── db-prep/ # Database preparation scripts
├── home/ # Home page application
├── public_service_finder/ # Main application logic
├── services/ # Service-related functionality
├── static/ # Static files (CSS, JS, images)
├── manage.py # Django management script
└── requirements.txt # Project dependencies
This project uses Amazon DynamoDB as its primary database. The database configuration can be found in the project settings. Make sure you have:
-
Created the necessary DynamoDB tables:
- Users
- Services
- [Other tables as needed]
-
Set up the correct IAM permissions:
- DynamoDB full access for development
- Limited read/write access for production
-
Configured the tables with appropriate partition keys and sort keys:
# Example table structure { 'TableName': 'Users', 'KeySchema': [ {'AttributeName': 'user_id', 'KeyType': 'HASH'}, {'AttributeName': 'email', 'KeyType': 'RANGE'} ] }
python manage.py test
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
- Omer Basar: Product Owner
- Aakash Shankar
- Shubham Garg
- Deepjyot Singh Kapoor
- Kartikey Sharma