Unfortunately Neighborhood YSWS got cancelled - so this tool isn't useful anymore
A comprehensive Slack bot and web application for tracking Neighborhood YSWS database submission statuses with real-time notifications and AI-powered updates.
- π 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
- 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
- Python 3.8 or higher
- Slack workspace with bot permissions
- YSWS API access
git clone https://github.com/yourusername/NeighbourhoodStatus.git
cd NeighbourhoodStatuspip install -r requirements.txtCreate 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-keypython api.pyThe application will be available at http://localhost:8721
/yswsdb-track- Start tracking your submission status/yswsdb-status- Check your current status/yswsdb-untrack- Stop tracking notifications
- Visit the web interface at your deployment URL
- Login using either:
- Slack OAuth: Secure authentication through Slack
- Manual ID Entry: Enter your Slack User ID directly
- View your dashboard with real-time status updates
- Enable/disable tracking as needed
- In Slack, click on your profile
- Select "More" β "Copy member ID"
- Use this ID for manual login
| 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 |
| 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 | β |
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
- Status Monitoring: The app checks the YSWS API every 5 minutes for status changes
- Change Detection: Compares current status with last known status for each tracked user
- AI Messages: Generates friendly status update messages using AI
- Slack Notifications: Sends personalized DMs to users when their status changes
- Web Dashboard: Provides real-time view of current status and tracking settings
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes and commit:
git commit -m "Add feature" - Push to the branch:
git push origin feature-name - Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Bug Reports: Create an issue
- Feature Requests: Start a discussion
- Slack API for excellent documentation
- Flask for the web framework
- Font Awesome for beautiful icons
- Hack Club for the YSWS program
Made for the Neighborhood community