- Project Overview/Purpose
- Features/Functionality
- Tech Stack
- Installation/setup instructions
- Config/Environment Variables
- Tests
- Deployment Instructions
- Coding standards/Linting
- License
- Author details
The Juice Talkies API is a RESTful API built to manage various aspects of a juice bar or similar establishment. This project aims to provide a robust and scalable backend solution for efficiently managing products, categories, orders, bills, and user accounts. It targets business owners and managers who need a reliable system to streamline their operations and gain valuable insights into their business performance. This API solves the problem of managing business operations manually, providing automation and data-driven insights.
- User Management: Secure user authentication and authorization.
- Product Management: Add, update, delete, and search for products. Includes image upload functionality.
- Category Management: Manage product categories, including adding, updating, and deleting categories.
- Order Management: Create, retrieve, update, and manage customer orders.
- Bill Generation: Generate bills for completed orders.
- Dashboard Analytics: Provides summary data on orders, revenue, and top-selling items.
- Search Functionality: Allows searching for products by name.
- Node.js: Server-side JavaScript runtime environment.
- Express.js: Web application framework for Node.js.
- Sequelize: Object-Relational Mapper (ORM) for database interaction.
- Firebase: Authentication and potentially other backend services.
- AWS S3: For image storage.
- MeiliSearch: For product search.
- Swagger: API documentation generation.
- Winston: Logging library.
- Joi: Validation library.
- Clone the repository:
git clone <repository url>
- Install dependencies:
npm install
- Set up environment variables (see below).
- Run the database migrations (if applicable, instructions would be provided here based on your database setup).
- Start the server:
npm start
Create a .env file in the root directory and add the following environment variables:
DATABASE_URL: Your database connection string.PORT: The port number for the server to listen on.- (Other environment variables required for Firebase, AWS, and MeiliSearch)
Run integration and unit tests:
npm test- Build the Docker image:
docker build -t juice-talkies-api . - Run the Docker container:
docker-compose up -d
The project uses ESLint and Prettier to maintain code quality and consistency. Run linting:
npm run lintThis project is licensed under the MIT License - see the LICENSE file for details.
Deviprasad Rai P dpraidola@gmail.com