Set up the initial project
Front-End
Setup
- Create Next.js app
- Add Firebase Hosting
- Add Firebase Functions
- Add Mantine (UI Component Library)
- Deploy to ensure all is gooooood!
Authentication
- Implement Firebase Auth
- Create authentication feature
- login page
- Data verification
- Feedback
- Notifications
- Loading icons
- Add routes/redirects
- login/logout logic
- Add dashboard landing page
Start building the payment calculator
- Create the calculator page
- Add Date Input for the start date & end date GitHub (opens in a new tab)
- Calculation logic - GitHub (opens in a new tab)
- getMonthList - get the number of months selected for the extract
- isWeekend - check if the date is a weekend
- getNextWednesday - get the next wednesday
- getPreviousFriday - get the previous friday
- AddOneYear - add one year to the date, this is for the second date Input
- asSalaryData - convert the data to the correct format for the salary data table on the frontend
- asCsvData - convert the data to the correct format for the csv file
- calculateBonusDate GitHub (opens in a new tab)
- get the 15th day of the month
- if the 15th day is a weekend, get the next wednesday
- else return the 15th day
- calculateSalaryDate GitHub (opens in a new tab)
- get the end of the month
- if the end of the month is a weekend, get the previous friday
- else return the end of the month
- calculateSalary GitHub (opens in a new tab)
- Calculates bonus and salary
- calculateSalaries GitHub (opens in a new tab)
- loops through calculateSalary
- Download CSV file
What I still want to do
- Add calculation logic to firebase Functions
- Save data in firestore per user to generate history
- Show history per user and allow download
- Finish my jest unit tests, I ran out of time since i reworked my logic and it broke the tests
- Add pipelines for the web project