{"id":27243729,"url":"https://github.com/kevinthulnith/inventory-management-system","last_synced_at":"2026-04-01T17:29:15.904Z","repository":{"id":285245045,"uuid":"955261779","full_name":"kevinThulnith/Inventory-Management-System","owner":"kevinThulnith","description":"Inventory Management System developed with Django | Django REST API for backend and Vite | React | Tailwind Css for frontend","archived":false,"fork":false,"pushed_at":"2025-04-06T21:22:36.000Z","size":2577,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T22:25:14.636Z","etag":null,"topics":["api","api-development","axios","backend","django","django-rest-framework","frontend","javascript","jwt-authentication","postgresql","python","react","tailwindcss","vite"],"latest_commit_sha":null,"homepage":"https://inventory-management-system-et5h.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kevinThulnith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-26T11:15:44.000Z","updated_at":"2025-04-06T21:22:39.000Z","dependencies_parsed_at":"2025-03-30T15:39:12.159Z","dependency_job_id":null,"html_url":"https://github.com/kevinThulnith/Inventory-Management-System","commit_stats":null,"previous_names":["kevinthulnith/inventory-management-system"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinThulnith%2FInventory-Management-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinThulnith%2FInventory-Management-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinThulnith%2FInventory-Management-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinThulnith%2FInventory-Management-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevinThulnith","download_url":"https://codeload.github.com/kevinThulnith/Inventory-Management-System/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248298435,"owners_count":21080318,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-development","axios","backend","django","django-rest-framework","frontend","javascript","jwt-authentication","postgresql","python","react","tailwindcss","vite"],"created_at":"2025-04-10T20:58:21.206Z","updated_at":"2025-10-28T17:44:57.548Z","avatar_url":"https://github.com/kevinThulnith.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Python IDLE](https://img.shields.io/badge/Python-3776AB?logo=python\u0026logoColor=fff)](#)\n[![Django](https://img.shields.io/badge/Django-%23092E20.svg?logo=django\u0026logoColor=white)](#)\n![DRF](https://img.shields.io/badge/Django_REST-FF1709?logo=django\u0026logoColor=white)\n![JWT](https://img.shields.io/badge/JWT-000000?logo=JSON%20web%20tokens)\n[![Postgres](https://img.shields.io/badge/Postgres-%23316192.svg?logo=postgresql\u0026logoColor=white)](#)\n[![Vercel](https://img.shields.io/badge/Railway-131415?logo=railway\u0026logoColor=white)](#)\n[![Vite](https://img.shields.io/badge/Vite-646CFF?logo=vite\u0026logoColor=fff)](#)\n[![React](https://img.shields.io/badge/React-%2320232a.svg?logo=react\u0026logoColor=%2361DAFB)](#)\n![Axios](https://img.shields.io/badge/Axios-5A29E4?logo=axios\u0026logoColor=white)\n![Tailwind](https://img.shields.io/badge/Tailwind_CSS-38B2AC?logo=tailwind-css\u0026logoColor=white)\n[![NodeJS](https://img.shields.io/badge/Node.js-6DA55F?logo=node.js\u0026logoColor=white)](#)\n[![Railway](https://img.shields.io/badge/Vercel-000000?logo=vercel\u0026logoColor=white)](#)\n\n# 🚀 Inventory Management System\n\n📦 **A Full-Stack Inventory Management Solution** with 🔐 **User Authentication** and **Authorization**. ✨ Built with **Django | Django REST Framework** for the backend and **Vite | React | Tailwind CSS** for the frontend. Fully ⚡ **Optimized Code** with 📱 **Fully Responsive**.\n\n![Tech Stack](photo/Presentation.png)\n\n## 🌟 Key Features\n\n### 🔐 Authentication \u0026 Security\n\n- 👤 **User Registration** - Create new accounts with validation\n- 🔑 **JWT Authentication** - Secure login/logout system\n- 🛡️ **Role-Based Access** - Protected routes \u0026 endpoints\n- 🔒 **CSRF Protection** - Enhanced security against Cross-Site Request Forgery attacks\n\n### 📦 Product Management\n\n- 🆕 **CRUD Operations** - Add/Edit/View/Delete products\n- 🏷️ **Smart Categorization** - Organize with nested categories\n- 📊 **Real-Time Inventory** - Track stock levels \u0026 alerts\n\n### 💼 Business Operations\n\n- 👥 **Customer Management** - Track purchases \u0026 history\n- 🏭 **Supplier Integration** - Manage procurement workflow\n- 💰 **Sales \u0026 Purchases** - Complete transaction tracking\n\n### 🛠️ Advanced Functionality\n\n- 🔍 **Powerful Search** - Filter products by multiple criteria\n- 📈 **Reporting Dashboard** - Visualize sales \u0026 inventory data\n- 📱 **Mobile-Friendly** - Works flawlessly on all devices\n\n### 🎯 Performance \u0026 SEO\n\n- 📱 **Mobile-First Design** - Optimized for all devices\n- 🚀 **SEO Optimized** - Enhanced meta tags and semantic HTML\n- 📊 **Performance Metrics** - Optimized loading times and Core Web Vitals\n- 🔍 **Search Engine Friendly** - Improved crawlability and indexing\n\n## 🔥 Tech Stack\n\n### 🏗️ Backend\n\n- 🐍 **Python:** Programming language.\n- 🎯 **Django:** Web framework.\n- 🔄 **Django REST Framework (DRF):** For building RESTful APIs.\n- 🔐 **JWT Authentication:** Secure user authentication.\n\n### 🎨 Frontend\n\n- ⚡ **Vite:** Fast build tool for React.\n- ⚛️ **React:** JavaScript library for building user interfaces.\n- 🎨 **Tailwind CSS:** Utility-first CSS framework for styling.\n- 🔄 **Axios:** For making HTTP requests to the backend.\n\n## 🚀 Quick Start\n\n### 📋 Prerequisites\n\n- Python 3.10+\n- Node.js 16+\n- PostgreSQL 12+\n\n## Backend Setup\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/kevinThulnith/Inventory-Management-System.git\n```\n\n2. Create a virtual environment:\n\n```bash\npython -m venv venv\nsource venv/bin/activate  # On Windows: .\\venv\\Scripts\\activate\n```\n\n3. Install dependencies:\n\n- install postgressSQL and c++ buid tool first.\n\n```bash\npip install -r requirements.txt\n```\n\n4. Run migrations:\n\n```bash\npython manage.py migrate\n```\n\n5. Start the Django development server:\n\n```bash\npython manage.py runserver\n```\n\n➡️ Backend runs at `http://localhost:8000`\n\n## Frontend Setup\n\n1. Navigate to the frontend directory:\n\n```bash\ncd ../frontend\n```\n\n2. Install dependencies:\n\n```bash\nnpm i\n```\n\n3. Start the Vite development server:\n\n```bash\nnpm run dev\n```\n\n➡️ Frontend runs at `http://localhost:3000`\n\n## 🌐 To Host on Local Network\n\n1. Get device **Ip** address\n\n```bash\nipconfig getifaddr en0 // in windows ipconfig\n```\n\n2. Start bachend\n\n```bash\npy .\\manage.py runserver \u003cDevice Ip address\u003e:8000\n```\n\n3. Start frontend\n\n   - change **.env** file fist\n\n```bash\nnpx vite --host {Device Ip Address}\n```\n\n## **Configuration:** ⚙️\n\n- **Database:** Configure your database settings in `backend/inventory/settings.py`. You can use SQLite (default, good for development) or PostgreSQL, MySQL, etc. for production.\n- **Environment Variables:** Consider using environment variables (e.g., using `python-dotenv`) for sensitive information like secret keys and database credentials. _Don't commit these to your repository!_ 🤫\n- **API Base URL:** Update the API base URL in your frontend React components to point to your Django backend (usually `http://localhost:8000`).\n\n\u003cbr\u003e\n\n## 📂 Project Structure\n\n```bash\n📦 inventory-management-system\n├── 📂 backend             # Django REST API\n│   ├── 📂 core            # Main app (settings, models, views)\n│   ├── 📂 products        # Product \u0026 Category logic\n│   ├── 📂 customers       # Customer management\n│   ├── 📂 suppliers       # Supplier management\n│   ├── 📂 sales           # Sales tracking\n│   └── 📂 purchases       # Purchase tracking\n│\n├── 📂 frontend            # React Frontend\n│   ├── 📂 src\n│   │   ├── 📂 components  # Reusable UI components\n│   │   ├── 📂 pages       # Page components\n│   │   ├── 📂 hooks       # Custom React hooks\n│   │   └── 📂 api        # API service functions\n│   └── vite.config.js     # Vite configuration\n│\n└── 📜 README.md           # You're here!\n```\n\n## 🔐 Authentication Flow\n\n- Register `api/user/register/` : Users can create an account by providing their details.\n- Login `api/token/` : Users log in with their credentials and receive an authentication token.\n- Protected Routes: Only authenticated users can access product management features.\n- Logout `api/token/blacklist/` : Users can log out, and their token is invalidated.\n\n## 🔗 API Endpoints:\n\nThe backend provides a RESTful API using Django REST Framework. You can access the API documentation at `http://localhost:8000/api/` (or the correct port for your development server) after running the Django server. Example endpoints:\n\n- `/api/categories/` (GET, POST, PUT, DELETE)\n- `/api/customers/` (GET, POST, PUT, DELETE)\n- `/api/suppliers/` (GET, POST, PUT, DELETE)\n- `/api/products/` (GET, POST, PUT, DELETE)\n- `/api/sales/` (GET, POST, PUT, DELETE)\n- `/api/purchases/` (GET, POST, PUT, DELETE)\n- `/api/token/` (POST) - Obtain JWT token\n- `/api/token/refresh/` (POST) - Refresh JWT token\n\n### Security Headers\n\n```http\nX-CSRFToken: \u003ccsrf-token\u003e\nAuthorization: Bearer \u003cjwt-token\u003e\n```\n\n## 🚀 Configuration Steps\n\n### CSRF Setup\n\n1. Include CSRF token in HTML template:\n\n```html\n\u003cmeta name=\"csrf-token\" content=\"{{ csrf_token }}\" /\u003e\n```\n\n2. Add to API requests:\n\n```javascript\naxios.defaults.headers.common[\"X-CSRFToken\"] = getCookie(\"csrftoken\");\n```\n\n### SEO Configuration\n\n1. Update meta tags in `index.html`:\n\n```html\n\u003cmeta name=\"description\" content=\"Your description\" /\u003e\n\u003cmeta name=\"keywords\" content=\"inventory, management, system\" /\u003e\n```\n\n2. Configure social media tags:\n\n```html\n\u003cmeta property=\"og:title\" content=\"Your Title\" /\u003e\n\u003cmeta property=\"og:description\" content=\"Your Description\" /\u003e\n```\n\n## 🛡️ Security Features\n\n### CSRF Protection\n\n- Django's built-in CSRF middleware for form protection\n- Custom CSRF token handling for API requests\n- Secure cookie handling and validation\n- Protection against cross-site request forgery attacks\n\n### SEO Implementation\n\n- Custom meta tags for better search engine visibility\n- OpenGraph and Twitter Card meta tags for social sharing\n- Semantic HTML structure for better accessibility\n- Optimized page titles and descriptions\n- Mobile-friendly responsive design\n\n## 💡 Why Choose This Project?\n\n- 🚀 Modern Stack - Cutting-edge technologies\n- 📈 Scalable Architecture - Ready for growth\n- 🎨 Beautiful UI - Tailwind-powered design\n- 🔄 Real-Time Updates - Instant data reflection\n- 📱 Mobile-Ready - Perfect for all devices\n\n## 🤝 Contributing\n\nWe ❤️ contributions! Here's how:\n\n1. 🍴 Fork the repository\n2. 🌿 Create a branch (git checkout -b feature/amazing-feature)\n3. 💾 Commit changes (git commit -m 'Add amazing feature')\n4. 📤 Push to branch (git push origin feature/amazing-feature)\n5. 🔀 Open a Pull Request\n\n## Show Your Support: ❤️\n\nIf you find `Inventory Management System` helpful, please consider:\n\n- Starring the repository on GitHub! ⭐\n- Sharing it with your network.\n- Contributing to the project.\n\nHappy Coding! 🎉👨‍💻👩‍💻\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinthulnith%2Finventory-management-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevinthulnith%2Finventory-management-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinthulnith%2Finventory-management-system/lists"}