https://ecoharbor-server.onrender.com
https://github.com/leilaotieno2/ecoharbor-client
In every organization, managing assets efficiently is crucial. Whether it's office equipment, machinery, or IT resources, keeping track of these assets can be challenging, especially in larger organizations with multiple departments and employees. The Asset Inventory Management System is designed to streamline this process, making it easier to track, maintain, and allocate assets.
The problem we aim to solve is the manual and error-prone management of assets. In many organizations, asset data is scattered across spreadsheets, making it hard to get a clear picture of what's available and what needs attention. Additionally, allocating funds for new asset purchases or repairs can be a cumbersome process, often leading to delays and inefficiencies.
Our solution is to create a centralized system that simplifies asset management and enhances decision-making. With this system, authorized users can efficiently request new assets, report issues with existing ones, and track the status of their requests.
Our initial version of the Asset Inventory Management System will include the following core features:
-
User Authentication:
- Users must log in to access the system.
- Users will be categorized as Admins, Procurement Managers, or Normal Employees.
-
Role-Based Access Control:
- Authorized users can add, update, or remove asset data.
- Procurement Managers have the authority to review and approve asset requests.
- All asset data will be securely stored in a central location.
- The system will provide separate views for managers and normal users.
-
Asset Management:
- Managers can add assets, categorize them, and attach images.
- Managers can allocate assets to employees.
-
Asset Requests:
- Users can submit requests for new assets or repairs using a form.
- Request details will include reasons, quantity, and urgency.
- Managers can view all pending requests and their urgency.
- Managers can also track completed requests.
- Users can monitor their active and completed requests.
To ensure the success of our project, we've set the following technical goals:
-
Descriptive Commits:
- We'll use clear commit messages to track changes.
- Each feature or bug fix will have its own branch.
-
Code Review:
- Before any changes are merged, they'll be reviewed by at least two team members and the project lead.
-
Testing:
- The project will incorporate both unit tests and UI tests.
- Our aim is to achieve a test coverage of above 85% for both UI and unit tests.
-
Modular Code:
- Our code will be organized in a modular way to minimize the impact of failures in one module on others.
- Backend: Ruby on Rails
- Database: PostgreSQL
- Frontend: ReactJS with Redux Toolkit or React Context for state management
To set up the Asset Inventory Management System locally, follow these steps:
-
Clone the repository:
git clone <repository-url>
-
Install backend dependencies (Ruby on Rails):
cd backend bundle install
-
Set up the database:
rails db:create db:migrate db:seed
-
Install frontend dependencies (ReactJS):
cd ../frontend npm install
-
Start the backend server (Ruby on Rails):
cd ../backend rails server
-
Start the frontend development server (ReactJS):
cd ../frontend npm start
-
Access the application in your web browser at
http://localhost:3000
.
We welcome contributions from the community. If you'd like to contribute to this project, please follow these steps:
- Fork the repository on GitHub.
- Clone your forked repository to your local machine.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with descriptive messages.
- Push your changes to your fork on GitHub.
- Create a pull request to the main repository's
develop
branch.
This project is licensed under the MIT License