Inventory Manager is a web application designed to help users keep track of their products. Users can log in, create shops, add items to these shops, and manage the quantity of each item. The application is built using the MERN stack, with the frontend deployed on Vercel and the backend deployed on Render. User authentication is handled through ClerkAuth.
-
Frontend:
- Next.js (with TypeScript)
- Tailwind CSS
- Deployed on Vercel
-
Backend:
- Node.js
- Express.js
- Deployed on Render
-
Database:
-
Authentication:
- User Authentication: Users can sign up and log in securely using ClerkAuth.
- Shop Management: Users can create multiple shops.
- Item Management: Within each shop, users can add items along with their quantities.
- Responsive Design: The application is fully responsive, providing an optimal user experience on both desktop and mobile devices.
- Node.js
- MongoDB
- Clone the backend repository:
git clone <backend-repo-url>
cd backend-repo- Install dependencies:
npm install- Create a
.envfile and add your environment variables:
MONGODB_URI=<your-mongodb-uri>
CLERK_SECRET_KEY=<your-clerk-secret-key>- Start the development server:
npm run dev- Deploy the backend on Render following their deployment guidelines.
- Clone the frontend repository:
git clone <frontend-repo-url>
cd frontend-repo- Install dependencies:
npm install- Create a
.env.localfile and add your environment variables:
MONGO_URI=<your-mongodb-key>
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=<your-publishable-clerk-key>
CLERK_SECRET_KEY=<your-clerk-secret-key>
WEBHOOK_SECRET=<your-webhook-secret-key-clerk>- Start the development server:
npm run dev- Deploy the frontend on Vercel following their deployment guidelines.
├── db/
├── models/
├── middleware/
├── index.js
├── .env
├── package.json
└── README.md
├── src/
│ ├── app/
| │ ├── api/
| │ ├── (auth)/
| │ ├── (main)/
| | │ ├── Inventory/
| | │ ├── Overview/
| │ └── page.tsx
| ├── components/
| ├── lib/
| │ ├── db.ts
| ├── middleware.ts
├── .env.local
├── package.json
└── README.md
- GET
/api/users/:userId/shops- Get all shops for the logged-in user - POST
/api/users/:userId/shops- Create a new shop - PUT
/api/users/:userId/shops/:shopId- Update a shop - DELETE
/api/users/:userId/shops/:shopId- Delete a shop
- GET
/api/users/:userId/shops/:shopId/items- Get all items for a specific shop - POST
/api/users/:userId/shops/:shopId/items- Add a new item to a specific shop - DELETE
/api/users/:userId/shops/:shopId/items/:itemId- Delete an item from a specific shop
- Sign Up / Log In: Users can sign up or log in using the authentication page.
- Create Shops: Once logged in, users can create new shops.
- Add Items: Within each shop, users can add items along with their quantities.
- Manage Items: Users can update or delete items as needed.
Contributions are welcome! Please create an issue or submit a pull request for any changes.
This project is licensed under the MIT License. See the LICENSE file for more details.
For any inquiries, please contact sharmasaurenb@gmail.com.