No description
- C# 54.4%
- HTML 44.8%
- CSS 0.7%
- JavaScript 0.1%
| Controllers | ||
| Data | ||
| Migrations | ||
| Models | ||
| Properties | ||
| Repository | ||
| ViewModels | ||
| Views | ||
| wwwroot | ||
| .gitignore | ||
| appsettings.Development.json | ||
| appsettings.json | ||
| CelebrateMe.csproj | ||
| CelebrateMe.sln | ||
| CLAUDE.md | ||
| Program.cs | ||
| README.md | ||
CelebrateMe BirthdayMarket v1.0 🎉
A nonprofit-focused gift shop application where families shop for birthday gifts through a guided, points-based experience. Designed for agency partners serving children ages 0-18.
What Can You Do?
For Families (Public Shopping Flow)
- Select Your Agency - Choose your nonprofit partner organization and verify with a 3-letter access code
- Provide Child Information - Enter your child's date of birth to receive age-appropriate points (0-11: 65 points, 12-18: 100 points)
- Shop the Birthday Market - Follow a guided 4-step shopping experience:
- Pick 1 birthday card
- Pick 1 book
- Pick 1 sweet treat
- Select gifts with your remaining points (filter by type and point value)
- Review & Complete - Review your cart and complete your order
- Get Confirmation - Receive order details with pickup instructions
For Administrators (Admin Dashboard)
- Manage Products - Add, edit, or remove products with images, point values, and age ranges
- Organize Categories - Control the shopping flow order and manage product organization
- Manage Agencies - Add partner nonprofit organizations with unique access codes
- Track Inventory - Monitor stock levels and view real-time availability
- View Orders - Review completed orders filtered by agency and date
- Generate Reports - Access order history and shopping trends
Current Features
- Age-Based Points System: Auto-calculated points based on child's age (0-11: 65 pts, 12-18: 100 pts)
- Agency-Validated Access: Secure shopping flow using agency selection and 3-letter verification codes
- Guided Shopping Flow: Sequential 8-step experience ensuring balanced birthday selections
- Dynamic Cart with Live Updates: Real-time points tracking, progress checklist, and inventory validation
- Product Images: Visual product catalog with image display organized by category
- Filtering & Search: Browse gifts by subcategory (Toys, Electronics, Sports, Gift Cards) and point ranges
- Admin Dashboard: Complete product, category, subcategory, and agency management
- Inventory Management: Transaction-based stock updates prevent overselling
- Order Tracking: Complete order history with agency association and demographic insights
- Responsive Design: Mobile and desktop friendly Bootstrap 5 interface
- Auto-Seeding: Development environment includes sample products and images
Future Enhancements
- Real-time notifications for order status updates using SignalR
- Production deployment with Azure SQL Database or PostgreSQL
- Email notifications for order confirmations and pickup reminders
- Advanced reporting and analytics dashboard with demographic breakdowns
- Product image upload interface in admin panel
- Multi-language support for diverse communities
- Volunteer coordination system for order fulfillment
- Export functionality for order reports (CSV, PDF)
Technologies Used
- Backend: ASP.NET Core 8.0 MVC
- ORM: Entity Framework Core with Code-First Migrations
- Database: SQLite (Development), Azure SQL ready (Production)
- Authentication: ASP.NET Core Identity
- Session Management: In-Memory Session Store
- Architecture: Repository Pattern, MVC Pattern
- Frontend: Bootstrap 5, Razor Views
- Seeding: Auto-seeding with DbSeeder class
Getting Started
Prerequisites
- .NET 8 SDK
- EF Core CLI tools:
dotnet tool install --global dotnet-ef
Run Locally
- Clone the repo and navigate to the project folder.
- Run the app — migrations and seed data are applied automatically on first launch:
dotnet run - Open
http://localhost:5003(orhttps://localhost:7129) in your browser.
Default Admin Account
| Field | Value |
|---|---|
admin@celebrateme.com |
|
| Password | Admin123! |
The admin account and sample products/agencies are seeded automatically in the development environment.
Database Migrations (manual)
dotnet ef migrations add <MigrationName>
dotnet ef database update