SmartInventory is a user-friendly, web-based application that streamlines and automates core inventory processes. It empowers users to:
- Gain real-time visibility into stock levels, eliminating stockouts and ensuring smooth operations.
- Simplify the ordering process with automated suggestions and real-time order tracking.
- Capture detailed stock information, manage stock movements, and generate insightful reports for data-driven decision making.
SmartInventory is designed to cater to the needs of various user roles within an organization:
- Business Owners/Managers (Administrators): Manage user access, configure system settings, and gain comprehensive inventory insights.
- Employees (Inventory Controllers/End-Users): Focus on daily stock management tasks, including adding, updating, and requesting stock.
- User-friendly Interface: Prioritizes ease of use with minimal technical jargon for a smooth user experience.
- Role-Based Access Control (RBAC): Ensures users have appropriate access rights within the system.
- Real-Time Inventory Tracking: Provides clear visibility into current stock levels.
- Automated Reordering: Generates purchase orders based on predefined rules and stock levels.
- Inventory Reporting: Offers insightful reports to support informed decision-making.
- Supplier Management: Stores supplier details, tracks performance metrics, and facilitates communication.
This project follows a mono-repo structure.
- This means that all code, documentation, and resources are stored within this single repository.
- main: This branch contains the final, production-ready code.
- No direct commits are permitted and all changes must come in a pull-request from a release branch.
- develop: All current development happens in this branch. This includes features, tests and fixes.
- feature: Feature branches are branched off the develop branch to add functionalities and to fix bugs.
- documentation: This is the branch used for documentation related content and layout commits.
- hotfix: This branch is created when a quick or crucial changes need to be made once all repo branches are merged into the main.
- Developers create feature branches from the develop.
- Upon the completion of a feature, a pull-request into develop is created.
- Automated lints and tests are used to validate changes.
- A pull-request must be reviewed by at least 1 other team member before merging into develop.
Reviews focus on checking that coding standards are being followed and that any issues brought on by miscommunication are cleared up early on.
Note
Use of issues as well as naming conventions of branches can be found in the coding standards documentation.
- Sign in with email and password.
- Create account for a team.
- Receive temporary pin for secure access.
- Forgot password
- Add team member.
- Remove team member.
- Assign roles.
- Edit roles.
- Export Table
- Search and sort table
- Add Item
- Remove Item
- Remove Multiple Items
- Edit Item
- Export Table
- Search and sort table
- Request Items
- Wait for stock low event trigger
- Add Supplier
- Remove Supplier
- Edit supplier details
- Export Table
- Search and sort table
- Add Widget(graph, summary, table)
- Remove widget
- Reposistion widget
- Save state
- Activity Report
- Graph Generation
- Metric calculation
- Table compiler
- Export
- Supplier Report
- Graph Generation
- Metric calculation
- Table compiler
- Export
- Order Report
- Graph Generation
- Metric calculation
- Table compiler
- Export
- Inventory Report
- Graph Generation
- Metric calculation
- Table compiler
- Export
- Create order
- Cancel Order
- View Qoute
- View Template
- Email Communication with suppliers
- Web Portal
- Mark as ordered
- Autonomous ordering
- Track Idle time
- Track log in attempts
- Track interactions
- Track supplier detail changes
- Track quote changes
- Track quote acceptance
- Track expected delivary date choice
- FAQ
- Troubleshooting
- User Quides
- Contact Us
- Profile:
- Change Password
- Change details(name, surname, email)
- Delete Account
- General:
- Dark/Light mode
📄 Software Requirement Specification
📄 Technical Installation Manual
Project Board Helix - Demo 3 App Recording Helix - Demo 3 Recording Helix - Demo 3 Presentation Slides
Note
Read more about decisions of technologies in the Architectural Specification.
- Angular
- Material
- Typescript
- AWS Lambda Functions
- API Gateway
- AWS Event Bridge
- AWS SES
- AWS SNS
- AWS DynamoDB
- AWS S3
- ESLint
- Prettier
- Cypress
- Postman
- Amplify
- Amplify Cloud Sandbox
This guide will walk you through setting up and running our Angular app with AWS Amplify integration on your local machine.
Before you begin, ensure that you have the following installed on your machine:
- Node.js (version 12 or later)
- npm (version 6 or later)
- Angular CLI
- AWS CLI
-
Install Node.js and npm:
- Visit the official Node.js website: https://nodejs.org
- Download the latest LTS version of Node.js for your operating system.
- Follow the installation instructions for your operating system.
- After installation, verify that Node.js and npm are installed correctly by running the following commands in your terminal:
node --version npm --version
-
Install Angular CLI:
- Open your terminal and run the following command to install Angular CLI globally:
npm install -g @angular/cli
- Verify that Angular CLI is installed correctly by running the following command:
ng version
- Open your terminal and run the following command to install Angular CLI globally:
-
Install AWS CLI:
- Visit the official AWS CLI installation guide: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
- Follow the installation instructions for your operating system.
- After installation, verify that AWS CLI is installed correctly by running the following command:
aws --version
-
Navigate to the cloned repository directory:
- Open your terminal and navigate to the
Smart-Inventory
repository directory in yourGitHub
folder. - Run the following command:
cd ~/Documents/GitHub/Smart-Inventory
- Open your terminal and navigate to the
-
Install the project dependencies:
npm install
-
Configure AWS CLI:
- Run
aws configure
in your terminal. - Provide your access key and secret access key when prompted.
- Run
-
Start the Amplify sandbox:
- Run the following command:
npx ampx sandbox
- Wait for the
npx ampx sandbox
command to finish running. This may take a few minutes.
- Run the following command:
To run the app locally, use the following command:
ng serve
Open your browser and navigate to http://localhost:4200
to see the app in action.
That's it! You should now have the Angular app with AWS Amplify integration running on your local machine. If you encounter any issues or have further questions, please don't hesitate to reach out to the team.