Inspiration
Working for small to mid-size startups where the HR team is small and has a myriad of everyday responsibilities and team engaging activities to conduct becomes an overburdened task. Also, managing CI/CD tools like Jenkins for the DevOps team with a small team size of 1 or 2 members becomes a challenge. Having faced such problems we came up with an idea of automating the daily or less productive tasks and offload this process to slack bot with reminders which will help the teams to focus on more productive activities.
What it does
Edith is here to help you.
- With the below commands HR/Admin can on board, update information of members or off board users from Organisations easily.
- add user @username : On Board a user to your Organisation and assign it to a team. In addition define their gender.
- list users: List all the users in the Organisation.
- modify user @username birthdate : Modify User info using this command.
- remove user @username: This will delete the user from all databases of Edith.
- To get Info of other members
- show info @username: This command will display member’s basic information like Name and Email Address or phone number, so that it is easy to communicate with them if you cannot find their email address somewhere.
- Employees/Members/Admin can run below command to Mark attendance
- mark attendance: This will mark today at as present and working today.
- Manage Leaves:
- apply leave : Apply leave from start day and mention days with the type of the leave.
- approve leave : Manager/ HR/ Admins can approve leaves providing the ID of the leave.
- list leaves: Shows people who are on leave for today. ( Only Admin/ HR )
- list leaves for approval: Check if there are any pending leave request for your approval. ( Only Admin/ HR )
Manage Announcements and Feeds
- make announcement : To make any new announcement of any event or accomplishment company wide or for a specific Individual.
- celebrations: Forgot you co-worker’s birthday? This command will show birthdays or work anniversary of all members.
- newsfeed: General feed about the company*.* New Joiners or other formal information*.*
Note: These feeds also run using cron to notify user about periodic updates of newsfeed and celebrations.
Manage Jenkins
- disable job: Disable a Job in Jenkins.
- enable job: Enable a Job in Jenkins.
- jenkins nodes: List detail about available nodes.
- retry job: Retry latest build of a job.
- trigger job []: Start a build with parameters.
We also added few custom commands for the fun sake.
Want to know weather for a city, run command:
- weather in : This will show weather in that city.
Edith logs: Helps to debug the slack bot
Edith Stats: Give information about slack bot.
help: List all the commands
add command '' '': A*dd a custom command/alias which is only available for you.*
delete command '': delete a custom alias
list commands: List all your defined custom commands, which are only available for you.
How we built it
We created a Django app with Postgres to maintain persist data for clients and their users and communicate with this web server using RestAPIs. We also developed a slack bot in Go which communicates using slack’s new socket mode and acts as a middleware for slack and our application which help us with saving, fetching data easily.
Challenges we ran into
- Since this was the first time we implemented the slack bot in Go using socket mode we faced few issues integration issues.
- Implementing cron jobs that list the approval of request for leaves to members who are HR or Admin only.
- Implementation for multiple interactions in Slack.
Accomplishments that we're proud of
Since work from home is prevailing world wide it gets a little difficult for people to interact and make social connections specially for new joiners. Edith comes to rescue with Edith’s announcements and celebration feature which reminds people about important dates of their team mates. Not only it tries to bring people together, it also makes job like applying for leave, reminding people about their requests and get information about your workmates easily.
If you are using Jenkins for your CI/CD and you don’t want to open UI or Blue Ocean plugin to monitor jobs and restart or manage Jenkins, you can take advantage of the integration that Edith provides.
We understand few of our commands are a little too verbose for people to type in so we also gave capability to the user to add alias to our commands. Customise the commands as per your need on per individual basis.
What we learned
- Go implementation of Slack Bot.
- Django Rest authentication using JWT.
- Slack socket mode.
- Slack Bot development.
- Cron implementation using Slack bot.
What's next for EDITH
- We want to add more features for HR/Admin like.
- Cron job implementation to send to individual users.
- Aesthetic changes to take Sat/Sun into consideration for Leaves.
- Add more commands for. purpose like:
- Procurement of items from company.
- Interview Scheduling.
- Hiring Process ( integration with JIRA )
- Manage Finances like Bonuses, Rewards from companies. Tax managements.
- Add more pluggable Apps like :
- JIRA
- CircleCI
- Github Actions
- Bamboo CI
- TeamsCity
- Github
- Gitlab
- BitBucket
- AWS
- Azure
- GCP
- Digital Ocean.
- SalesForce
- Add deployment related strategy for Kubernetes and Docker.

Log in or sign up for Devpost to join the conversation.