SIPINJAM - Web-based Borrowing System
Sipinjam is a web-based borrowing system that allows users to manage the borrowing and usage of items within different units. It provides a convenient and efficient way to track item availability, submit booking requests, and manage item usages.
Features
- User Roles: Administrator, Unit Admin, Borrower.
- Unit Management: Add, edit, and delete units (administrator).
- Category Management: Add, edit, and delete categories (administrator).
- Admin Unit Management: Add, edit, and delete admin units (administrator).
- Item Management: Add, edit, and delete items. Assign items to categories and units (unit admin).
- Booking Management: Submit, view, and cancel booking requests (borrower). Approve, reject, and expire booking requests (unit admin).
- Usage Management: Track item usages and returns (unit admin).
- Profile Management: User profiles for administrators, unit admins, and borrowers.
- Statistics and Reports: See reports on item usage, booking requests, and returns (unit admin).
System Requirements
- PHP 7.4 or higher
- MySQL 5.7 or higher
- Laravel 8.x framework
- Composer (dependency management)
- Web server (Apache, Nginx)
- Browser compatibility: Chrome, Firefox, Safari, Edge
Installation
-
Clone the repository:
git clone https://github.com/alfikiafan/sipinjam.git
-
Navigate to the project directory:
cd sipinjam
-
Install the dependencies:
composer install
-
Create a copy of the
.env.example
file and rename it to.env
:cp .env.example .env
-
Generate the application key:
php artisan key:generate
-
Configure the database settings in the
.env
file:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database_name DB_USERNAME=your_username DB_PASSWORD=your_password
-
Activate GD and Fileinfo Extensions:
- Open your
php.ini
file in your php directory. - Uncomment the lines for the GD extension and the Fileinfo extension by removing the semicolon (;) at the beginning of the lines.
extension=gd extension=fileinfo
- Save the changes to the
php.ini
file. - This step is used to enable base64 in print-approval pdf.
- Restart your web server to apply the changes.
- Open your
-
Run the database migrations:
php artisan migrate
-
Add an administrator account to the database:
Open a MySQL client, such as phpMyAdmin or MySQL Workbench.
Connect to your database.
Execute the following SQL query to insert a new administrator account:
INSERT INTO users (name, email, password, role) VALUES ('Admin', '[email protected]', 'your_password_hash', 'administrator');
Replace 'your_password_hash' with the hashed password for the administrator account. You can generate a password hash using Laravel's bcrypt function or a tool like bcrypt-generator.com.
-
Start the development server:
php artisan serve
- Access the application in your web browser at
http://127.0.0.1:8000/
.
License
This project is licensed under the Non-commercial License.
Support
If you have any questions or need assistance, please open an issue in the GitHub repository.
Acknowledgements
We would like to thank the following contributors for their valuable contributions to this project:
- Alfiki Diastama Afan Firdaus (https://github.com/alfikiafan)
- Dwi Sinta Anggraini (https://github.com/dwisintangrn)
- Haqqi Setiadjie (https://github.com/HaqqiEky)
- Farros Muhammad Iqbaal
Credits
Sipinjam is built using several resources and libraries, including:
Disclaimer
This project is for demonstration purposes only and should not be used in production environments without proper testing and customization.