Snack Safari is a full-stack e-commerce platform allowing customers to sample the best snacks from around the world. The platform consists of three main components:
- Customer Frontend: A Next.js-based shopping experience
- Admin Dashboard: A separate Next.js application for business management
- Backend API: An Express.js server handling business logic and data persistence
You can view a live version of the site at https://snack-safari.vercel.app/
- International snack marketplace
- Secure payment processing with Stripe
- Firebase authentication
- Admin dashboard for order management
- AI-powered product search and recommendations
- Real-time inventory tracking
- Responsive design with dark mode support
snack-safari/
├── frontend/ # Customer-facing Next.js application
├── frontend-admin/ # Admin dashboard Next.js application
└── backend/ # Express.js API server
- Next.js 15
- React 18
- TypeScript
- Tailwind CSS
- Firebase Auth
- Stripe Elements
- Zustand
- Express.js
- PostgreSQL (Neon)
- Prisma ORM
- Redis
- Firebase Admin
- Stripe API
- Neon (Serverless Postgres)
- Redis Cache
- Firebase Authentication
- Stripe Payments
- Cloudinary (Image Storage)
- Clone the repository
git clone <repository-url>
cd snack-safari
- Set up each component:
# Backend
cd backend
cp .env.template .env
npm install
# Frontend
cd ../frontend
cp .env.template .env.local
npm install
# Admin Dashboard
cd ../frontend-admin
cp .env.template .env.local
npm install
- Start the development servers:
# In separate terminals:
cd backend && npm run dev
cd frontend && npm run dev
cd frontend-admin && npm run dev
- Backend API: http://localhost:3010
- Customer Frontend: http://localhost:3000
- Admin Dashboard: http://localhost:3001
Each component requires specific environment variables. See the README in each directory for detailed configuration instructions.
Detailed documentation for each component can be found in their respective directories:
This project is licensed under the MIT License - see the LICENSE file for details.