We are developing our own information system as part of the P11 laboratory. A specialist laser database is to be created for the “Restoration” department. This will be a contact point for restorers who want to find out about cleaning with a laser device. Among other things, information on the laser device, the material to be treated, the project and the location will be collected. In the first steps, we developed a data model and then tried to integrate existing information. Now the whole thing is to be implemented with code.
- Overview lists:
- Devices
- Institutions
- Artifacts
- Materials
- Sample surfaces
- Partial surfaces
- Persons
- Processes
- Projects
- Venues
- Locations
- User-friendly input forms:
- Add new materials
- Add new institutions
- Add new devices
- Add new processes
- Add new artifacts
- Add new projects
- Add new venues
- Add new locations including venue assignments
- Add new sample surfaces
- Add new partial surfaces
- Filterable institutions list: View all institutions on a single page and filter by type (clients, contractors, manufacturers).
- Admin Tools: Create new Accounts via UI or enter
php artisan newuser <name> <email> <password>in server terminal for easy user creation. - Simple Search: The simple search function in the main menu allows you to quickly search for device names, institution names, ...
- Advanced Search: The advanced search allows you to search the database for specific attributes. Currently, device and institution names as well as the features year and cooling can be searched.
- Responsive UI: Adapats to light and dark color scheme and supports various viewport sizes.
- Image Upload: You can upload images for your project.
- Welcome (Homepage): /
- About LADIS: /about
- Advanced Search: /adv-search
- Search Result: /adv-search/result
- Institutions: /institutions/all
- Institution Details: /institutions/{id}
- Devices: /devices/all
- Device Details: /devices/{id}
- Artifacts: /artifacts/all
- Artifact Details: /artifacts/{id}
- Persons: /persons/all
- Person Details: /persons/{id}
- Materials: /materials/all
- Material Details: /materials/{id}
- Projects: /projects/all
- Project Details: /projects/{id}
- Venues: /venues/all
- Venue Details: /venues/{id}
- Locations: /locations/all
- Location Details: /locations/{id}
- Sample Surfaces: /samplesurfaces/all
- Sample Surface Details: /samplesurfaces/{id}
- Partial Surfaces: /partialsurfaces/all
- Partial Surface Details: /partialsurfaces/{id}
- Processes: /processes/all
- Process Details: /processes/{id}
- Damage Patterns: /damagepatterns/all
- Damage Pattern Details: /damagepatterns/{id}
- Condition Details: /conditions/{id}
- Contact Us: /contact
- Database Statistics: /statistics
- Legal (Rechtliches / Impressum): /impressum
- Log-In Mask: /login
- Account Overview: /login/home
- Data Input Form (Eingabemaske): /login/inputform
- New Artifact Entry: /inputform_artifact
- New Artifact Entry [dynamic page]
- New Device Entry [dynamic page]
- New Institution Entry [dynamic page]
- New Process Entry [dynamic page]
- New Project Entry [dynamic page]
- Report Review: /login/review
- Data Input Form (Eingabemaske): /login/inputform
- Account Overview: /login/home
- Privacy Policy (Datenschutzerklärung): /datenschutz
- Terms of Use (Nutzungsbedingungen): /terms-of-use
- User Help: /help
- Registered User Help [dynamic page]
- Unregistered User Help [dynamic page]
- PHP: 8.2 or higher
Follow these steps to set up the development environment:
- Clone the repository.
- Run
composer installto install PHP dependencies. - Run
npm installto install JavaScript dependencies. - Copy
.env.exampleto.envand configure your environment variables. - Run
php artisan key:generateto generate the application key. - Run
php artisan migrateto set up the database. - Run
composer run-script devto start the development server. - Access the application at http://localhost:8000.
- Logs rotate daily. Adjust
LOG_DAILY_DAYSin your.envfile to change retention.
Tip
See Development Environment Setup for detailed instructions.
php artisan make:migration create_TABLENAME_tableto add a new migration for adding a new table.php artisan migrate:statusto show which migrations have run thus far.php artisan migrate --pretendto see the SQL statements that will be executed by the migrations without actually running them.php artisan migrateto run database migrations.php artisan migrate:rollbackto roll back the last migration.php artisan migrate:resetto reset all migrations.php artisan migrate:freshto reset all migrations and newly execute all migrations.php artisan migrate:fresh --seedto create a fresh database and seed it with the data from the seeders.
Tip
Detailed information about migrations and adding new models can be found in the Wiki.
php artisan serveto start test server for manual testingphp artisan testto execute the test suite.
In addition to local testing, our test suite runs automatically via GitHub Actions on every push and pull request. All supported PHP versions (8.2, 8.3, and 8.4) are tested to ensure compatibility across the entire supported range. This automated testing is separate from the manual testing commands above and requires no action from developers.
This web application will be deployed automatically to the production server in the VPN of University of Applied Sciences Potsdam using GitHub Actions. We will inform you about the public release later.
federal_statescitiesartifactsimagesinstitutionslenseslocationsdevicesmaterialsvenuesconditionsdamage_patterns
Seeders are used to populate the database with initial or sample data. To run all seeders, execute:
php artisan db:seed
# or
php artisan migrate:fresh --seedSee Commands for database handling for more information.
DamagePatternSeederDeviceSeederInstitutionSeederMaterialSeederProcessSeederUserSeeder
Factories automatically generate sample data for models to simplify testing and development. All models in this project have a factory.
This project is licensed under the GPLv3 License - see the LICENSE file for details.