Skip to content

bbarni2020/NeighbourhoodStatus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

21dfcf5Β Β·Β Β· Aug 6, 2025

History

24 Commits
Jul 8, 2025
Jul 8, 2025
Jul 27, 2025
Jul 8, 2025
Jul 8, 2025
Jul 8, 2025
Jul 8, 2025
Aug 6, 2025
Jul 27, 2025
Jul 24, 2025
Jul 8, 2025
Jul 8, 2025
Jul 8, 2025
Jul 8, 2025

Repository files navigation

Neighborhood YSWS Status Tracker πŸš€ (useless)

Python Flask Slack API License Status

Unfortunately Neighborhood YSWS got cancelled - so this tool isn't useful anymore

Message StatusBuddy on Slack

A comprehensive Slack bot and web application for tracking Neighborhood YSWS database submission statuses with real-time notifications and AI-powered updates.

Or if you have any questions Message me on Slack

Demo video of the Slack bot

▢️ Watch Demo Video if not loaded

✨ Features

  • πŸ”„ Real-time Status Tracking: Automatically monitors submission status every 5 minutes
  • πŸ”” Instant Notifications: Slack DM notifications when status changes
  • πŸ€– AI-Powered Messages: Friendly, personalized status updates using AI
  • 🌐 Web Dashboard: Beautiful web interface for status monitoring
  • πŸ“± Dual Login: Support for both Slack OAuth and manual Slack ID entry
  • ⚑ Live Updates: Real-time status checking with caching for performance
  • 🎨 Modern UI: Responsive design with gradient backgrounds and smooth animations

πŸ› οΈ Tech Stack

  • Backend: Python, Flask, Slack Bolt SDK
  • Frontend: HTML5, CSS3, JavaScript (Vanilla)
  • Scheduling: APScheduler for background tasks
  • APIs: Slack Web API, Custom YSWS API
  • Styling: Custom CSS with Tailwind-inspired utilities
  • Icons: Font Awesome

πŸ“‹ Prerequisites

  • Python 3.8 or higher
  • Slack workspace with bot permissions
  • YSWS API access

πŸš€ Quick Start

1. Clone the Repository

git clone https://github.com/yourusername/NeighbourhoodStatus.git

cd NeighbourhoodStatus

2. Install Dependencies

pip install -r requirements.txt

3. Environment Setup

Create a .env file in the root directory:

SLACK_BOT_TOKEN=xoxb-your-bot-token

SLACK_SIGNING_SECRET=your-signing-secret

SLACK_CLIENT_ID=your-client-id

SLACK_CLIENT_SECRET=your-client-secret

FLASK_SECRET_KEY=your-secret-key

4. Run the Application

python api.py

The application will be available at http://localhost:8721

πŸ“± Usage

Slack Bot Commands

  • /yswsdb-track - Start tracking your submission status
  • /yswsdb-status - Check your current status
  • /yswsdb-untrack - Stop tracking notifications

Web Interface

  1. Visit the web interface at your deployment URL
  2. Login using either:
    • Slack OAuth: Secure authentication through Slack
    • Manual ID Entry: Enter your Slack User ID directly
  3. View your dashboard with real-time status updates
  4. Enable/disable tracking as needed

Finding Your Slack User ID

  1. In Slack, click on your profile
  2. Select "More" β†’ "Copy member ID"
  3. Use this ID for manual login

🎯 Status Types

Status Emoji Description
Pending πŸ•› Submission is waiting to be reviewed
Approved 🟒 Submission has been successfully approved
Denied πŸ”΄ Submission has issues or hasn't been started
Unknown βšͺ Status is not recognized

πŸ”§ Configuration

Environment Variables

Variable Description Required
SLACK_BOT_TOKEN Bot User OAuth Token βœ…
SLACK_SIGNING_SECRET Signing Secret for request verification βœ…
SLACK_CLIENT_ID OAuth Client ID βœ…
SLACK_CLIENT_SECRET OAuth Client Secret βœ…
FLASK_SECRET_KEY Flask session secret key βœ…

πŸ“ Project Structure

NeighbourhoodStatus/
β”œβ”€β”€ api.py                 # Main Flask application
β”œβ”€β”€ requirements.txt       # Python dependencies
β”œβ”€β”€ tracked_users.json     # User tracking data (auto-generated)
β”œβ”€β”€ .env                   # Environment variables (create this)
β”œβ”€β”€ static/
β”‚   └── style.css         # Custom CSS styles
β”œβ”€β”€ templates/
β”‚   β”œβ”€β”€ base.html         # Base template
β”‚   β”œβ”€β”€ login.html        # Login page
β”‚   └── dashboard.html    # User dashboard
└── README.md             # This file
 This file

πŸ”„ How It Works

  1. Status Monitoring: The app checks the YSWS API every 5 minutes for status changes
  2. Change Detection: Compares current status with last known status for each tracked user
  3. AI Messages: Generates friendly status update messages using AI
  4. Slack Notifications: Sends personalized DMs to users when their status changes
  5. Web Dashboard: Provides real-time view of current status and tracking settings

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes and commit: git commit -m "Add feature"
  4. Push to the branch: git push origin feature-name
  5. Submit a pull request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ› Issues & Supportport

πŸ™ Acknowledgments


Made for the Neighborhood community