Add Slack-authenticated bathroom timer with chat commands and UTC leaderboards#267
Draft
sfreeman422 with Copilot wants to merge 7 commits into
Draft
Add Slack-authenticated bathroom timer with chat commands and UTC leaderboards#267sfreeman422 with Copilot wants to merge 7 commits into
sfreeman422 with Copilot wants to merge 7 commits into
Conversation
Collaborator
|
@copilot also add an integration to let you do |
Copilot
AI
changed the title
[WIP] Add Slack-authenticated bathroom timer feature with daily leaderboard
Add Slack-authenticated bathroom timer with daily leaderboard
Jun 30, 2026
Author
Addressed in ec2de71 and 9e9e9d3. |
Copilot
AI
changed the title
Add Slack-authenticated bathroom timer with daily leaderboard
Add Slack-authenticated bathroom timer with chat commands and UTC leaderboards
Jun 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a Slack-authenticated bathroom timer flow to the existing web UI, backed by persisted timer sessions, Slack slash-command controls, and UTC leaderboards sorted from least to most total bathroom time. The change keeps Slack ID as the user identity, enforces one active timer per user, and exposes the required timer/me/leaderboard endpoints plus chat integrations.
Backend: bathroom timer domain + APIs
BathroomUserandBathroomTimerTypeORM models for persisted user profiles and timer sessions./api/me,/api/timer/start,/api/timer/stop, and/api/leaderboard.duration_secondson stop.Auth/session flow
Frontend: timer UX on home page
Slack chat integration
/start,/stop, and/bathroom./startand/stoplet a user manage their own bathroom timer directly in chat./bathroom [daily|weekly|monthly|lifetime|all]returns the requested leaderboard view(s) in Slack.Docs/config
SESSION_SECRET, Slack callback expectations, bathroom timer endpoints, Slack slash-command URLs, and UTC leaderboard behavior inREADME.md..env.examplewith the new session secret requirement.Representative API shape
Original prompt
Add Slack-authenticated bathroom timer feature with daily leaderboard
Summary:
Implement a feature that allows users to visit the site, sign in with Slack (use Slack ID as the user identity), and start/stop a personal bathroom timer. The system must enforce one active timer per user. Persist timer sessions in the database. Provide a daily leaderboard shown on the frontend that lists users sorted from least to most total bathroom time for the selected day (default: today). The frontend should show login, a start/stop toggle, current active timer status, and the day's leaderboard.
Requirements & constraints (from conversation):
Tech stack & defaults (use these unless the repo already dictates otherwise):
Auth & identity:
Backend API endpoints to implement:
Request: none (user is authenticated via cookie/session)
Response: 201 with timer id and start timestamp
Response: 200 with timer id, start, end, duration_seconds
Database schema (migrations):
Business logic details:
Frontend changes:
Testing & docs:
Implementation notes / acceptance criteria:
Files likely to change (examples):
Please implement this feature in repository...
This pull request was created from Copilot chat.