Keywords
Section 1, chatbot application, Python, MongoDB, Railway, Slack Bolt, FastAPI, social connection, future of work
Project Abstract
This project presents the design and implementation of a BeReal-inspired chatbot integrated within Slack that aims to form social connections in both professional and academic environments. Vibecheck operates entirely within a messaging platform, allowing users to share short, but time-restricted updates about their day during breaks, such as lunch periods. Users interact with the chatbot through Slack messages, buttons, bot commands, image uploads that enables users to submit photos with captions, or just text in response to daily prompts.
The system is built using Python and processes Slack events through the Slack API. MongoDB is used to persist user data, prompts, submissions, timestamps, and late flags, enabling consistent tracking and retrieval of shared content. Communication occurs between Slack and the backend, where Slack acts as the user interface and the FastAPI service serves as the application logic layer.
High Level Requirement
VibeCheck is a chatbot that uses messaging platforms to operate. It sends prompts that will have a timed response others will reply to. Once sent, users can see each other's posts and responses. It is a Slack-integrated chatbot designed to encourage social interaction within professional or academic environments. The chatbot periodically sends time-limited prompts to users during designated break periods, such as lunch breaks. Users respond to these prompts by submitting short text updates and optional images with captions directly through Slack.
Interaction with VibeCheck occurs entirely within Slack channels using standard messaging features and bot commands. Once a response window closes, users are able to view each other’s submissions within the same channel, promoting sociability while maintaining a professional tone. The system automatically enforces timing constraints, manages submissions, and provides feedback to users without requiring a separate application or external interface.
Conceptual Design
VibeCheck follows a client–server, event-driven architecture. Slack serves as the user interaction layer, where users receive prompts and submit responses. Python is the backend that validates incoming requests, applies business rules such as submission deadlines, processes text and image data, and sends responses back to Slack. Persistent data is stored in database. Stored data includes user data, daily prompts, submissions, timestamps, and late submission flags. This project is designed to run in Slack.
Background
Social check-in applications such, as BeReal, encourages authenticity and breaking down superficial barriers. This is done by having users take a time-bounded photo of what they're doing and of themselves, but they are primarily designed for mobile and personal social contexts. VibeCheck adapts this concept to professional and academic environments by providing similar functionalities within Slack. Unlike BeReal, which relies on a dedicated mobile frontend, VibeCheck operates entirely through an existing messaging interface, reducing friction and encouraging participation during natural breaks in the workday.
Required Resources
To develop VibeCheck, background knowledge in Python, APIs, databases is necessary, along with familiarity with event-driven application design. Software resources include Python, any IDE, and access to Slack.
No hardware requirements. Resources are commonly available within standard Computer Science department environments.
How to Run the Project
Join the Slack workspace: VibeCheck Bot Team
You can also add the chatbot to your own workspace: VibeCheck Bot
Running the chatbot locally is not necessary, since it is already deployed on Railway. Use the slash command "/help" in # bot-test channel to see what the bot can do and check out the docusaurus for additional details.
Any and all critiques will be greatly appreciated. Have fun testing! 🙂
Contact Information
To reach out for any questions, comments, or concerns regarding this project, you can contact me via email or text:
Khai: tuq43307@temple.edu | 267-241-3304
Running Tests
Run test commands from the project root directory.
-
Install development dependencies:
python -m pip install -r requirements-dev.txt -
Run all unit tests:
python run_tests.py
Optional:
- Run a specific file:
python run_tests.py tests/test_commands.py - Verbose output:
python run_tests.py -v - Run acceptance tests only:
pytest -m acceptance - Run all tests with pytest directly:
pytest
CI/CD with GitHub Actions
Added a new workflow in file .github/workflows/ci-tests.yml. Tests are executed by python run_tests.py and runs automatically on every push and pull_request.
[Dependencies installed from requirements-dev.txt]
To view results:
- Click the
Actionstab. - Open the latest
Python CI Testsrun.
Collaborators
Made with contrib.rocks.