Arcade Session Viewer is a web application that allows users to view and manage their Hack Club Arcade sessions. It provides an easy-to-use interface for viewing the status of your sessions.
- View sessions grouped by goals and sorted by creation time
- Display session details including title, creation time, and duration
- Get Slack thread URLs for each session
- Check the review status of sessions
- User authentication using Slack user ID and Arcade API key
You can access the live version of this application at: https://arcade-session-viewer.artem4852.hackclub.app/. See the Usage section for more information on how to use the application.
- Backend: Python with Flask
- Frontend: HTML, SASS, JavaScript
- API Integration: Slack API, Hack Hour API
- Clone the repository
- Install the required Python packages:
pip install flask requests python-dotenv
- Set up your environment variables in a
.env
file (see how to get those here):cookie=your_slack_cookie token=your_slack_token
- Run the application:
python app.py
To get your Slack API credentials, follow these steps:
- Open Slack in your web browser
- Open the developer console (F12)
- Go to the "Network" tab
- Reload the page
- Click on any XHR request
- Find the "cookie" in the "Request Headers" section and "token" in the "Request Payload" section
- Open the application in your web browser
- Enter your Slack user ID and Arcade API key and click "Update credentials"
- View your sessions grouped by goals
- Click on "Load" to fetch Slack thread URLs and session statuses
If you click on "Load" for session status, thread URL will be loaded as well if it hasn't been yet.
- To get your user id go to channel #what-is-my-slack-id in the Hack Club Slack and type anything you wish. A bot will respond with your user id.
- To get your Arcade API key use the command /api.
The thing is every such request requires a separate API call. Many users have a lot of sessions, and loading all of them at once would be inefficient and might even cause rate-limits and bans. That's why I decided to implement a button that would load the URLs and statuses only when the user needs them.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.