Whisk is a modern web application designed to streamline the organization of potluck events for college students. It provides an intuitive interface for managing guests, groceries, recipes, and expenses.
If you're interested in learning more about how we made this: check out the medium article
- Create and manage multiple potluck events
- View all events in a clean, card-based interface
- Track key event statistics including guest count, outstanding expenses, and alerts
- Navigate between events seamlessly with automatic scroll restoration
- Add and remove guests with name and phone number
- Interactive guest list with hover effects showing contact information
- Quick access to chat and call functions for each guest
- Visual avatars for each guest using their initials
- Create and maintain shopping lists for each event
- Track item quantities and prices
- Mark items as purchased/acquired
- Edit or remove items as needed
- Assign items to specific guests
- Interactive checkboxes for shopping progress
- View total outstanding expenses for the event
- Track individual recipe components and ingredients
- Organize recipes by courses with images
- Mark recipe items as acquired or needed
- Add or modify courses as needed
- Track expenses per person
- View outstanding balances
- Record and manage payments
- Mark payments as completed
- Calculate per-person cost distribution
- View payment history
- React 18.2.0
- React Router DOM 6.22.3
- Vite for build tooling
- PropTypes for type checking
- Modern CSS with CSS Variables
- Responsive design for mobile compatibility
- Node.js (Latest LTS version recommended)
- npm (comes with Node.js)
-
Clone the repository:
git clone [repository-url]
-
Navigate to the project directory:
cd whisk -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:3000
/src/components- React components/event- Event-specific components
/data- Data management and storage/utils- Utility functions/assets- Static assets
The app uses a consistent design system with CSS variables for:
- Primary colors (--primary-blue, --action-green)
- Secondary colors (--secondary-purple, --tertiary-yellow)
- Text colors (--text-light, --text-dark)
- Consistent border radiuses and padding
- Responsive animations and transitions
This is a prototype for CIS 4120. Please refer to the course guidelines for contribution rules.
This project is part of CIS 4120 coursework and is subject to university guidelines.