A simple MVC project to familiarize myself with the Laravel framework.
- Clone the repository:
$ git clone "https://github.com/patrick-verbs/asset-tracker
- Install and run Docker
- Navigate to the
asset-tracker
directory on your computer - Open with your preferred text editor to view the code base
- To serve the local web app:
- Run the following commands in a CLI:
cd "[your file path]/asset-tracker"
./vendor/bin/sail up
docker ps
- From the table of containers shown in the command line, locate the container (row) that lists the image
sail-8.1/app
and the command"start-container"
- Once you've located that row, copy the hash listed under
CONTAINER ID
to your clipboard - Run the command
docker exec -it [container ID from clipboard] bash
- Once you've located that row, copy the hash listed under
- Run the following commands in a CLI:
- Visit the application via web browser at:
http://localhost/
No known bugs 🐛
This will be a many-to-many model where users are associated with assets and vice versa.
Asset model:
- ID |
int
| MVP - Asset full name |
string
| MVP - Asset short name |
string
(optional) | Stretch - Asset parents (e.g. if asset is part of a collection/archive) |
int
(ID) | Stretch - Asset children (e.g. if asset is an archive containing files) |
int
(ID) | Stretch - Asset owners (many to many)
- Users |
int
(ID via UsersAssets join table) | MVP - Groups |
int
(ID via join) | Stretch
- Users |
- Asset deployments | Stretch
- Projects |
int
(ID via join)
- Projects |
- Asset license
- Actual license |
string
| MVP - Usage description/limitations if no actual license |
string
| Stretch
- Actual license |
User model:
- ID |
int
| MVP - User name |
string
| MVP - User email |
string
(optional) | Stretch - User full name |
string
(optional) | Stretch - User's assets (many to many)
- Owned |
int
(Asset ID via UsersAssets join table) | MVP - Provisional |
int
(Asset ID populated via Groups) | Stretch
- Owned |
- User's projects | Stretch
- Projects |
int
(ID via join)
- Projects |
UsersAssets model:
- User ID |
int
| MVP - Asset ID |
int
| MVP - Asset location |
string
(short description, like a nickname, e.g. "Ada's MacBook") | MVP - Asset address |
string
(URL or file system address) | Stretch - Asset license
- Actual license |
string
| MVP - Usage description/limitations if no actual license |
string
| Stretch
- Actual license |
- Source | Stretch
- Source name |
string
(e.g. "Unity Asset Store") - Source address |
string
(e.g. URL) - File checksum(s) |
array
ofstring
s (SHA-256) - Invoice |
string
(URL or file address)
- Source name |
- Provenance | Stretch
- Ordered list | nested
array
of key-value pairs showing chain of custody (User or Group IDs nested from a Source)
- Ordered list | nested
- Public (visible to all users) |
boolean
| Stretch - Visibility |
array
ofstring
s (User and Group IDs) | Stretch
Group model | Stretch
- Groups can be associated with many users
- Users can be associated with many groups
Project model | Stretch
- Projects can be associated with many users
- Users can be associated with many projects
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
- Simple, fast routing engine.
- Powerful dependency injection container.
- Multiple back-ends for session and cache storage.
- Expressive, intuitive database ORM.
- Database agnostic schema migrations.
- Robust background job processing.
- Real-time event broadcasting.
Laravel is accessible, powerful, and provides tools required for large, robust applications.
MIT
MIT LicenseCopyright (c) 2022 Patrick Lee
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.