๐ง MVP In Progress ๐ง
This application enables users to subscribe to MTA stations or lines to receive timely service alerts.
- Frontend: Developed using React with TypeScript
- Backend: Utilizes Django and Django REST Framework with Python Typing
- Hosting: AWS
- Authorization: Managed through Auth Tokens
- Third-Party API: MTA API
For more detailed user stories, view the Kanban board.
Current Milestones (As of Jan 24th, 2024):
MVP
- ๐ ๏ธ V0: Basic Project Setup - Establish the foundational structure
- ๐ ๏ธ V1: User Login - Implement user login functionality
- V2: Users Types - Create basic and admin user
- V3: User Sign Up - Create basic sign up via email
- V4: Station Alert Subscription - Enable station-specific alert subscriptions
- V5: View Station Alerts - Users can view alerts from subscribed stations on their dashboard
- V6: Unsubscribe from Station Alerts - Option to unsubscribe from station alerts via the dashboard
- V7: Station Alerts via Twilio - Receive station alerts on mobile through Twilio integration
Additional Alerts
- V8: Admin User Controls - Admin user controls overs users and alerts
- V9: Line Alert Subscription - Facilitate subscriptions to specific MTA lines
- V10: Unsubscribe from Line Alerts - Feature to cancel line-specific alert subscriptions
- V11: Line Alerts via Twilio - Get line alerts on mobile through Twilio
Stretch Goals
- V12: User Login with Google - User can login with Google
- V13: Time-Specific Alerts - Receive alerts within a preferred time window
- V14: Historical Alert Data - Access to historical alert data
- Framework: Django, Django REST Framework
- Package Management: PIP
- Authentication: Django Admin, Django REST Framework Auth Tokens, CORS
- Database: PostgreSQL, Django ORM
- Testing: Pytest, Locust (Potential for performance testing)
- Environment: Virtual Env, DotEnv
- Formatting and Linting: PyLint, MyPy, Black
- Run
pylint *.py
,mypy .
, andblack .
inbackend/
- Run
- Typing: Python Typing
- Framework: React with TypeScript
- CSS Framework: Tailwind
- Package Management: NPM
- HTTP Client: ky
- Formatting and Linting ESLint, Prettier
- Run
npx eslint .
andnpm run prettier
- Run
- Testing: Jest
- Misc: Flexbox, AwesomeFont
- Platforms: AWS
- Services: EC2, S3, IAM, EBS
- Tools: GitHub or AWS CodeDeploy
- Awesome Django: For Django Packages
- Black, MyPy, and Pylint: Article on how to setup Black, MyPy, and Pylint for project
- Django-Docker-Quickstart: Github repo example of Django and Docker
- Vite: Vite documentation