π½οΈ SnackStack is a campus meal ordering system and management platform, built as a Platform as a Service (PaaS). It aims to streamline the process of ordering food in college campuses by providing students and staff with a seamless experience from browsing menu items to managing their orders, all while enabling campus meal providers to efficiently manage their offerings and track sales.
- π³ Points System: Operate on a points-based system; points can be easily purchased at your nearest canteen.
- π§βπ Student Ordering: Browse available meals, add items to the cart, and place orders.
- π§βπ³ Meal Providers Dashboard: Manage meals, pricing, and availability in real-time.
- π¦ Order Management: Track order status, cancel, and update orders.
- π° Payment Integration: Can be integrated with PalmPay/UPI, etc.
- π‘οΈ Admin Control: Monitor system-wide usage, manage users, and analyze sales data.
- π Real-time Notifications: Get updates on meal availability, order status, and more.
- Frontend: React, Vite, Tailwind CSS
- Backend: Node.js, Express.js
- Database: PostgreSQL (with Drizzle ORM)
- Authentication: Passport.js (Local Strategy)
- Payment Gateway: Points Based System for now
- Deployment: Docker, Heroku / AWS / DigitalOcean (depending on preference)
Ensure you have the following installed:
- Node.js (v16 or later)
- npm (comes with Node.js)
- PostgreSQL (or any supported database)
- Docker (for containerization, if preferred)
-
Clone the repository:
git clone https://github.com/NeuralAditya/SnackStack.git cd SnackStack
-
Install dependencies:
- For backend:
cd server npm install
- For frontend:
cd client npm install
- For backend:
-
Set up environment variables:
- Create
.env
files for both client and server, and add the required configurations like database credentials, JWT secret, etc.
- Create
-
Start the backend server:
npm run dev
-
Start the frontend server (in a separate terminal window):
npm run dev
-
Navigate to
http://localhost:5000
to access the application.
Ensure you have PostgreSQL running locally or use a cloud service like Heroku Postgres.
Run the migrations to set up the database schema:
npm run db:push
We welcome contributions! If you'd like to help out, please follow the steps below:
- Fork the repository.
- Create a new branch for your feature or fix:
git checkout -b feature/my-new-feature
- Make your changes.
- Commit your changes:
git commit -m "Add my new feature"
- Push your branch:
git push origin feature/my-new-feature
- Open a pull request to the
main
branch.
Please ensure your code passes the tests and follows our coding standards before submitting a pull request.
This project is dual-licensed:
- GNU Affero General Public License v3.0 (AGPLv3) β Open source under AGPLv3; see LICENSE-AGPLv3.txt
- Commercial License β For commercial use and proprietary licensing, see LICENSE-COMMERCIAL.txt
- Aditya Arora - GitHub Link
- Brijesh Gupta - Email For Commercial Use
- Nikhil Gupta - Contributor & Liason
Made with β€οΈ by the SnackStack team.