A robust, multi-role food delivery platform tailored for university campuses. This application bridges the gap between students, campus stores, and administrators, offering a seamless ordering experience and powerful management tools.
- Seamless Ordering: Browse campus stores, view detailed menus, and place orders with ease.
- Vending Machine Integration: Unique interface to browse and order from smart vending machines across campus.
- Smart Cart: Persistent cart functionality with real-time price calculation.
- Secure Payments: Integrated Razorpay gateway for safe and reliable transactions.
- Real-Time Tracking: Track order status from "Pending" to "Delivered".
- Order History: Comprehensive dashboard to view past orders and spending patterns.
- Profile Management: Manage delivery addresses and personal details.
- Menu Management: Full control to add, edit, or remove items (products) with images, prices, and stock status.
- Order Management: Real-time dashboard to receive incoming orders and update statuses (Pending -> Preparing -> Ready -> Delivered).
- Store Profile: Manage store hours, description, and branding.
- Centralized Control: Comprehensive overview of all platform activities.
- Store Management: Onboard new stores, manage existing accounts, and oversee store performance.
- Vending Network: Manage vending machine locations, stock, and status.
- Event Management: Create and manage campus updates or food-related events.
- Product Oversight: Global view of products across all stores.
- Frontend Framework: Next.js 16 (App Directory)
- Language: TypeScript
- UI & Styling:
- Tailwind CSS for responsive design.
- Radix UI & shadcn/ui for accessible components.
- Lucide React for iconography.
- Backend & Database:
- Payments: Razorpay integration.
- Form Handling: React Hook Form + Zod validation.
Ensure you have the following installed:
- Node.js (v18 or higher)
- MongoDB (Local instance or Atlas connection)
- npm or pnpm
-
Clone the repository:
git clone <repository-url> cd unigo
-
Install dependencies:
npm install # or pnpm install -
Environment Configuration: Create a
.env.localfile in the root directory and populate it with the necessary keys (see below). -
Run the application:
npm run dev
Access the app at http://localhost:3000.
The application requires the following environment variables to function correctly.
.env.local:
# 🗄️ Database
MONGODB_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/campus-db
# 🔑 Authentication
JWT_SECRET=your_super_secret_jwt_key
# 💳 Payments (Razorpay)
NEXT_PUBLIC_RAZORPAY_KEY_ID=rzp_test_...
RAZORPAY_KEY_SECRET=your_razorpay_secret
# 🛡️ Super Admin Credentials
ADMIN_USERNAME=admin
ADMIN_PASSWORD=secure_admin_password
# 🌐 App Config
NEXT_PUBLIC_APP_URL=http://localhost:3000A quick look at the top-level directory structure:
/app: Next.js App Router structure./admin: Super admin dashboard routes and actions./api: Backend API routes (Auth, Webhooks)./restaurant: User-facing store browsing and "My Store" interfaces./models: Mongoose schemas (User, Store, Order, Product, etc.).
/components: Reusable React components (UI primitives, feature-specific blocks)./lib: Shared utilities (DB connection, formatters)./public: Static assets.
npm run dev: Start the development server.npm run build: Build the app for production.npm start: Run the production build.npm run lint: Run ESLint to ensure code quality.
This project is actively maintained and managed by:
- Aashish Raj (@aashishrajdev)
- Ashish Chaurasiya (@drdead)