Skip to content

JuzerShakir/birthday_buddies

Repository files navigation

Birthday Buddies

Sending birthday wishes the moment they matter.

🧐 Motivation

We all have loved ones with birthdays scattered throughout the year.

Busy lives can make it easy to forget important dates, leading to missed birthday wishes and potential hurt feelings.

Birthday Buddies is your personal birthday manager, ensuring you never miss a loved one's special day again.

Benefits

  • Effortless Reminders: The app automatically reminds you of upcoming birthdays, taking the mental burden of remembering off your shoulders.
  • Meaningful Connections: Sending timely birthday wishes strengthens relationships with friends and family, showing you care.
  • Peace of Mind: Birthday Buddies eliminates the guilt and stress of forgetting someone's birthday.

🐦‍🔥 Production

This application is hosted in the production. You can check it out here: Birthday Buddies

👩‍💻 Development Setup

Open your terminal and clone this repo into a directory of your choice:

git@github.com:JuzerShakir/birthday-buddies.git

Opening the cloned repository

cd birthday-buddies && code .

Important

Before moving forward make sure you have Ruby 3.3.1 version installed in your system. Or Download from here

Install all the dependencies

bundle install

Create database and tables

rails db:migrate

Setting up an Email

In order to test emails in development environment you need to install mailcatcher gem first.

gem install mailcatcher

Now to run the mailcatcher:

mailcatcher

This will output couple of URLs where it will listen for emails. You can visit anyone of the links to check if the emails.

Add mailer credentials to send email to the users:

EDITOR="code --wait" rails credentials:edit

add credentials in this format:

mailer:
  email: youremail@gmail.com
  password: your-app-password

You will need to generate an app password by visiting to 'App Password' in your google settings and paste it here.



💡 Contributing

If you have problems, please create a GitHub Issue.

Take a look at the Contributing document for instructions on setting up the repo on your machine, understanding the codebase, and creating a good pull request.

Thank you, contributors!

💪 Challenges I faced

  • Show & open dialog of the right birthday buddy.
  • Calculating the right hijri dates with the hijri gem as it shows previous date.
  • Calculating next gregorian birthday & hijri birthday to set reminders.
  • Using the Solid Queue for background jobs. (Issue)
  • Sending birthday email reminders to the user exactly on midnight regardless of which time zones they are from.
  • Designing UI. (theme, font, navigation flow, responsive layout, etc).

Versioning

Birthday Buddies follows Semantic Versioning 2.0 as defined at https://semver.org.

License

This code is free to use under the terms of the MIT license.