Skip to content

patrick-verbs/asset-tracker

Repository files navigation

Asset Tracker

A simple MVC project to familiarize myself with the Laravel framework.

Build Status Total Downloads Latest Stable Version License

Setup and Use

  1. Clone the repository: $ git clone "https://github.com/patrick-verbs/asset-tracker
  2. Install and run Docker
  3. Navigate to the asset-tracker directory on your computer
  4. Open with your preferred text editor to view the code base
  5. 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
  6. Visit the application via web browser at: http://localhost/

Known Bugs

No known bugs 🐛

Whiteboarding

Data Structure

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
  • Asset deployments | Stretch
    • Projects | int (ID via join)
  • Asset license
    • Actual license | string | MVP
    • Usage description/limitations if no actual license | string | Stretch

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
  • User's projects | Stretch
    • Projects | int (ID via join)

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
  • Source | Stretch
    • Source name | string (e.g. "Unity Asset Store")
    • Source address | string (e.g. URL)
    • File checksum(s) | array of strings (SHA-256)
    • Invoice | string (URL or file address)
  • Provenance | Stretch
    • Ordered list | nested array of key-value pairs showing chain of custody (User or Group IDs nested from a Source)
  • Public (visible to all users) | boolean | Stretch
  • Visibility | array of strings (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

About Laravel

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:

Laravel is accessible, powerful, and provides tools required for large, robust applications.

License

MIT
MIT License

Copyright (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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages