MackHalliday / subscribe_to_MTA_alerts

🚧 MVP In Progress 🚧 A service to subscribe to MTA alerts for particular line or stop.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Subscribe to MTA Alerts

🚧 MVP In Progress 🚧

Project Overview

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

Milestones

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

Tech Overview

Backend

  • 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 ., and black . in backend/
  • Typing: Python Typing

Frontend

  • Framework: React with TypeScript
  • CSS Framework: Tailwind
  • Package Management: NPM
  • HTTP Client: ky
  • Formatting and Linting ESLint, Prettier
    • Run npx eslint . and npm run prettier
  • Testing: Jest
  • Misc: Flexbox, AwesomeFont

Infrastructure

  • Platforms: AWS
  • Services: EC2, S3, IAM, EBS

CI/CD

  • Tools: GitHub or AWS CodeDeploy

Project Resources

About

🚧 MVP In Progress 🚧 A service to subscribe to MTA alerts for particular line or stop.

License:MIT License


Languages

Language:Python 43.6%Language:TypeScript 40.9%Language:JavaScript 5.1%Language:Dockerfile 4.4%Language:HTML 3.1%Language:CSS 2.9%