This project is a Slack Notification Service built to send real-time updates to Slack whenever users interact with tasks in the system.
- Task Creation Notification – Sends a Slack message when a new task is created.
- Task Update Notification – Sends a message when a task is updated.
- Task Status Change Notification – Notifies the team whenever the status of a task changes (e.g., In Progress → Completed).
- Go (Golang) – Implemented using the standard library
- PostgreSQL – Database for tasks and notifications
- Redis – Used for caching and queueing
- Koyeb – Hosting platform
- Client sends a request to create, update, or change a task.
- Cache stores temporary data for fast retrieval.
- Scheduler manages timing and background processing of notifications.
- Database persists all task information (task id, task name, assigned_to, due_at, created_at, updated_at).
- Redis Queue holds notification jobs before they are sent.
- Slack Server receives the final payload and delivers the message to the Slack channel.
The service requires the following environment variables to be set:
DATABASE_URL=postgres://user:password@localhost:5432/slack_service
REDIS_URL=redis://localhost:6379
SLACK_BOT_TOKEN=xxxxx
PORT=8080| Method | Endpoint | Description |
|---|---|---|
| POST | /tasks |
Create a new task (triggers Slack notification) |
| PATCH | /tasks/{id} |
Update task details (triggers notification) |
The service is hosted on Koyeb.
- Oluwadarasimi Temitope Shina-kelani – Backend Developer (Golang)
- Stephen Basoah Dankyi – Backend Developer (Golang)
