Cake Tracker is a management tool designed to keep track of members' birthdays. This helps ensure that every member is celebrated, even in a remote, multinational company. π
- β¨ Add a member with the following mandatory attributes:
- π§βπ€βπ§ First Name
- π§βπ€βπ§ Last Name
- π Birth Date
- π Country
- ποΈ City
- π Validate that each member is at least 18 years old.
- π Ensure that the combination of first name, last name, and location is unique.
- π View a list of all members and their information.
- π View a sorted list of members by closest to date birthdays.
β οΈ Error handling with toast notifications.
- βοΈ React
- π¦ TypeScript
- π¨ SCSS
App.tsx
: Main component integrating the member addition form and the member list.AddMemberForm.tsx
: Form for adding new members.MembersList.tsx
: Displays a list of all members.MemberItem.tsx
: Displays individual member information.
_variables.scss
: SCSS variables for theme and colors.colors.scss
: Color definitions.index.scss
: Global styles.App.scss
: Styles for the main App component.Header.scss
: Styles for the header component.
- π Home: Main page with the form to add members and the list of all members.
- βοΈ Edit Member WIP: Page to search and edit existing members.
- π Calendar WIP: Page with a calendar view to see birthdays.
- βοΈ Settings WIP: Page for application settings.
- π Django
- π§ Django Rest Framework
Member
: Represents a member with fields for first name, last name, birth date, country, and city. Validates that the member is at least 18 years old.
MemberListCreate
: API view to list and create members.MemberListSorted
: API view to list members sorted by upcoming birthdays.
MemberSerializer
: Serializer for the Member model, including custom validation to ensure the member is at least 18 years old.
POST /api/members/
: Add a new member.GET /api/members/
: Retrieve a list of all members.GET /api/members/sorted/
: Retrieve a list of members sorted by upcoming birthdays.
- Ubuntu 22.04 or later
- Python 3.8 or higher
- Node.js 18.x or higher
-
Run Initial Setup Script
- This script will install necessary dependencies including Node.js.
-
bash setup_vm.sh
-
Start the Servers
- After running the initial setup, use the start_server.sh script to start both backend and frontend servers.
-
bash start_servers.sh
-
Cleanup (Optional)
- To clean up the environment, you can use the cleanup script.
-
bash vm_cleanup.sh
Once the setup is complete, you can access the application via http://localhost:5173
. You will see the following sections:
- Home: Overview of all members and their birthdays
- Edit Member WIP: Add new members or update existing member information
- Calendar WIP: View a calendar with upcoming birthdays
- Settings WIP: Application settings and configurations
Check out our short demo video showcasing the key features and how to use the Cake Tracker.
The quality aspec is caused by the conversion from a standard recording to a gif file :)).
This project is licensed under the MIT License. See the LICENSE file for more details.