Asset Management Project
Overview
The Asset Management Project is a comprehensive solution designed to help organizations efficiently manage their assets. This project provides functionalities for asset information, maintenance, asset allocation to users under admin, and dashboard viewing. The system is built with a user-friendly interface.
Table of Contents
- Features
- Installation
- Usage
- Unit Testing
- Configuration
- Contributing
- Releasing
- Changelog
- License
- Contact
Features
- Admin: Maintain detailed records of all Assigned Users, Locations, Departments, Product Types, Product Categories, and Roles.
- Dashboard: Displays information like Assets, Assigned/Unassigned Assets, Vendors, Locations, Products, Users, and Total Asset Cost in a tabular format along with Upcoming Warranty Expiries and Recent Activities Performed in the dashboard.
- Assets: Assign people to assets by adding them and a list to display all the assigned people with their respective assets.
- Upload: To generate a sample file or upload them for all the displayed data of Vendors, Locations, Departments, Product Types, Product Categories.
- Reporting and Analytics: Generate reports on asset performance, utilization, and maintenance history.
- User Management: Role-based access control to secure sensitive asset information.
- Integration: API support for integrating with other enterprise systems.
- Recycle Bin: Contains all the previously deleted files by the admin and also has functionality to restore them.
Installation
Prerequisites
- Python 3.9+
- Mysql (Can be replaced by your preferred database)
- Docker (optional, for containerized deployment)
Steps
-
Clone the repository:
git clone https://github.com/yourusername/assetmanagement.git cd asseto-asset-management -
Create and activate a virtual environment:
python -m venv env source env/bin/activate # On Windows use `env\Scripts\activate` -
Install dependencies:
pip install -r requirements.txt -
Set up environment variables:
cp .env.example .envEdit the
.envfile with your preferred settings. -
Apply migrations:
python manage.py migrate -
Start the development server:
python manage.py runserver -
Open your browser and navigate to
http://localhost:8000. -
Create a superuser if necessary:
python manage.py createsuperuser
Usage
Try This Project with a Demo Account
You can use this project before downloading. The project is hosted here.\ \ Credentials:\ email: [email protected] \ password: DM4g476ZmQ$U
Log in with this credential and use the below features
Admin
- Navigate to the "Admin" section.
- Admin consists of five sections: Locations, Departments, Product Types, Product Categories, and Roles.
- Each section has its own functionalities where you can perform operations such as Add/Edit/Delete/View.
Vendors
- Navigate to the "Vendors" section.
- Click the buttons as per your needs (Add/Edit/Delete/View vendors).
- Fill in the vendor details and click Save.
- Searching and downloading vendor details are also available.
Products
- Navigate to the "Products" section.
- Click the buttons as per your needs (Add/Edit/Delete/View products).
- Fill in the product details and click Save.
- Searching and downloading product details are also available.
Users
- Navigate to the "Users" section.
- Click the buttons as per your needs (Add/Edit/Delete/View users).
- Fill in the user details and click Save.
- Searching and downloading user details are also available.
Assets
- Navigate to the "Assets" section.
- Click the buttons as per your needs (Add/Edit/Delete/View assets).
- Fill in the asset details and click Save.
- Assigned Assets also contain a list of all the assets assigned to different individuals with search functionalities and Reassign/Unassign features.
Upload
- Navigate to the "Upload" section.
- Upload consists of five sections: Locations, Departments, Product Types, Product Categories, and Vendors.
- Each section has its own functionalities where you may either upload the data or download a sample.
Recycle Bin
- The Recycle Bin contains all the previously deleted files by the admin and also has functionality to restore them, divided by category.
Unit Testing
To ensure the quality and reliability of the system, unit tests are written to test various functionalities of the project. You can run the tests to verify that the project works as expected.
Running Unit Tests
-
Activate your virtual environment (if not already activated):
source env/bin/activate # On Windows use `env\Scripts\activate` -
Run tests:
python manage.py testThis will run all the tests across the project.
-
Run tests for a specific app: If you want to run tests from a specific app, use the app name:
python manage.py test assets -
Verbose Output: For more detailed output while running the tests, use the
-vflag:python manage.py test -v 2
Other Useful Commands
- Show test results without resetting the database:
python manage.py test --keepdb
Configuration
Configuration options are managed via the .env file. Key settings include:
- Database credentials
- SMTP server credentias
- Other service configurations
- CSRF Setup
- Allowed-Host Setup
Copy the settings from .env.example to .env and modify as needed.
Contributing
We welcome contributions! To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch). - Make your changes and commit them (
git commit -m 'Add new feature'). - Push to the branch (
git push origin feature-branch). - Open a pull request.
Please ensure your code follows our coding standards.
Releasing
To publish a new version of Asseto to GitHub for the community, follow the step-by-step guide in RELEASING.md.
It covers:
- Versioning conventions (SemVer)
- Pre-release checklist (tests, security audit, changelog)
- Branch workflow (
release/X.Y.Z→main→ tag → back todevelop) - How to create a GitHub Release
- Hotfix process for urgent patches
License
This project is licensed under the MIT License. See the LICENSE file for more details.
Contact
For any inquiries or support, please contact:
- Email: [email protected]
- Project Maintainer: Vyrazu Labs Ltd
2FA
2FA can be enabled/disabled in the profile section. If 2FA is enabled user can scan the QR in profile section to get the OTP in their Authenticator App. If disabled conventional login will be used.
Notification
Different Type of notifications can be Enabled/Disabled in the profile section. For using In-App notification for the mobile application we would need to also setup firebase. Firebase credentials file can be kept in the root folder by the name of "firebase-credentials.json" or else user can encrypt the contents of the "firebase-credentials.json" using a fernet key and store the fernet key in .env along with the encrypted data.