This project makes use of pnpm as the package manager.
- Make the dashboard nav bar fixed and not scroll with the rest of the page.
- Order the birthday dates in ascending order
- Find a tool that can send emails for you based on data in database. It would be called everyday.
- Settings page
- Cloud function for sending mails daily
- Create a page loader component
- Create a button loader component
- focus on password input on eye icon click
- clicking outside navbar closes the navbar
- make the opaque bg cover everything when the sidebar is open
- main content cannot move when navbar is open
- remove body overflow when modal is clicked
- find new colors and use the 60/30/10 rule
- find logo for app
- merge all variants of button to one file using cva
- put the logo everywhere needed
- add an underline to the normal line and on hover remove it
- add image/content beside form on auth pages
- use the new color palette and fix app
- add 404 error page
- move continue with google for auth up
- change name to be able to use only a single name e.g Dave and nore Dave aronmwan
- add error handling on form submission
- add a loading spinner when searching, toegther with the debounce
- fix dashboard header showing up when add birthday modal is open
- edit and delete birthdays
- send a welcome email when signing up for the first time
- fix the search birthday function returning peoples' birthday not belonging to the specific user
- fix clearing the search input showing stale data before working. It can show a loading spinner
- fix user image on dashboard header being disproportional and distorted (not too sure)
- use optimistic updates for adding and removing birthdays
- add error component for data fetching
- fix color on the inline calender showing blue. the select options shouldn't be blue. Make black. Remove the underline showing in the months part.
- remove the hover effect from the inline calender
- do home page
- add padding block to the inputs
- make the search input fill the container for upcoming birthday section for mobile
- make dashboard header bg blue and use mono logo
- make nav bar bg a saturated color of white
- change primary button to right side in modals for desktop
- make the button at the corner more obvious with maybe a text
- increase the spacing between the image and text for upcoming birthday card
- use a lighter color for the border for the card on dashboard, say grey-200
- change top section of calender to something. Samuel suggested a pastel purple color
- increase the text for the month select in the inline calender
- on mobile, make the add birthday button more prominent in the empty state for the dashboard. Figure something out for the desktop
- remove settings and logout from navbar and take them to user image at the top right. Let them be a dropdown/popup
- work on a brithday template for mailing and add to courier dashboard
- remove the divider class from the upcoming birthday section and use en element beneath each card
- fix date error when adding new date
- feedback page with 3 options (request feat, report bug, holla the dev)
- Create a serverless function for updating the year of birthdays that have passed in the database to the next year.
- [] change the loading state for protecting routes from authenticated user to use a popup at the right corner like linkedIn and popular apps do it
- [] add meta tags
- [] show all birthdays received from backend on the calender (seems not possible yet)
- Get today's date
- Create an array called todayBirthdays having a schema of: { userId: "I 67yugc6c7ecgbc", birthdays: ["John", "Doe", "testing"], }[]
- Run through the birthday database and find birthdays that match today's date
- Check if the userId exists in todayBirthdays.
- True: update the birthdays array for that userId by adding the person's name to the array.
- False: Create a new object in the todayBirthdays array and update the userId and birthdays array
- Loop through the todayBirthdays
- Get the email address from appwrite based on the userId
- Check that the length for birthdays array is more than 1 1. True: Use email template that is for multiple people 1. False: User email template for a single person
- Send mail to the email address and log the status of this line