{"id":15022847,"url":"https://github.com/benjetson/cpsc462-term-project","last_synced_at":"2026-03-17T15:25:10.470Z","repository":{"id":132030502,"uuid":"290919979","full_name":"BenJetson/CPSC462-term-project","owner":"BenJetson","description":"My CPSC 462 term project: an IT helpdesk/KB web portal written in PHP with a mySQL database.","archived":false,"fork":false,"pushed_at":"2021-10-02T20:45:35.000Z","size":1037,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-19T17:56:19.372Z","etag":null,"topics":["clemson","cpsc462","mysql","php","php5","webapp"],"latest_commit_sha":null,"homepage":"https://webapp.cs.clemson.edu/~bfgodfr/4620/project","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BenJetson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-28T01:21:20.000Z","updated_at":"2021-10-02T20:45:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"d32e0e79-a883-4095-a2ea-bb495afdc283","html_url":"https://github.com/BenJetson/CPSC462-term-project","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenJetson%2FCPSC462-term-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenJetson%2FCPSC462-term-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenJetson%2FCPSC462-term-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenJetson%2FCPSC462-term-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BenJetson","download_url":"https://codeload.github.com/BenJetson/CPSC462-term-project/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243318758,"owners_count":20272144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clemson","cpsc462","mysql","php","php5","webapp"],"created_at":"2024-09-24T19:58:27.054Z","updated_at":"2025-12-26T16:05:43.566Z","avatar_url":"https://github.com/BenJetson.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CPSC 462 Term Project\n\nThis project is property of Ben Godfrey (bfgodfr).\n\n## Project Topic\n\nThe goal of this project is to produce an IT Helpdesk application on the LAMP\nstack with two key features:\n\n- A **knowledge base** so that users can get answers immediately on their own.\n  This gets users the support they need faster and reduces the ticket volume\n  for the help desk staff.\n- A **help ticket** system so that customers can request individual assistance\n  when the knowledge base does not have the answer they need. This cuts down on\n  email volume for the help desk staff and assists them with keeping track of\n  which issues are unresolved.\n\n## Codebase Structure\n\n- `/db/` - directory containing files relating to the database itself.\n\n  - `/db/migrations/` - directory containing all database migration files,\n    named in the order that they are to be run.\n\n- `/docker/` - directory containing files that are necessary to run the app on\n  your local development machine in Docker. NOT USED IN PRODUCTION.\n\n- `/scripts/` - helpful shell scripts that are used to automate various\n  deployment and other tasks.\n\n- `/src/` - directory containing the application source code. This is what gets\n  the public HTML folder on the webserver.\n\n  - `/src/assets/` - directory containing static resource files.\n\n  - `/src/includes/` - directory containing PHP code that will be included\n    within other scripts. NOT ACCESSIBLE via the internet.\n\n    - `/src/includes/components/` - directory containing PHP code that can\n      render various views. Most of the HTML markup lives here.\n\n    - `/src/includes/db/` - directory containing PHP code with database driver\n      functions. All direct interfacing with the database happens in these\n      files only. Other scripts may call these functions to get DB data.\n\n    - `/src/includes/forms/` - directory containing PHP code that will handle\n      all form POST processing. Will do access/validity checks and make\n      appropriate database driver calls.\n\n    - `/src/includes/pages/` - directory containing PHP code that renders a\n      full HTML5 compliant page using view the components passed in.\n\n    - `/src/includes/types/` - directory containing PHP classes that model the\n      data structures used throughout the application.\n\n  - `/src/vendor/` - directory containing source code that this application\n    depends on, but is not part of this repository. The contents of this\n    directory are controlled by [PHP Composer](getcomposer.org). Vendored code\n    is not checked into the repository and must be fetched by running the\n    composer recipe provided in the Makefile.\n\n  - `/src/*.php` - these PHP scripts are the driver scripts, the only ones that\n    are accessible to the public via the internet. **ALL EXECUTION STARTS HERE**\n\n- `/.env*` - these are environment files, which are used to store secrets and\n  other application configuration variables. Each tier has its own file.\n- `/composer*` - these files describe the PHP libraries that this application\n  depends on and their respective dependency versions.\n- `/docker-compose.yml` - this file describes the cluster of Docker containers\n  that can be spun up for local development purposes. NOT USED IN PRODUCTION.\n- `/Dockerfile*` - these files describe how to build the containers that are\n  referenced in the Docker Compose file. NOT USED IN PRODUCTION.\n- `/LICENSE` - this file describes the terms under which the files contained\n  within this repository may be used.\n- `/Makefile` - this file contains recipes that can be invoked via make to\n  build and deploy this application.\n\n## Deployment Notes\n\nThis project includes deployment scripts. The necessary files will be copied\nto the server automatically.\n\n1. Fill in the appropriate `.env` file for the desired target tier. Use\n   `.env.prod` for production and `.env.dev` for development.\n1. Configure your SSH client for the SoC web application server. We must set two\n   options for the script to work.\n\n   ```ssh_config\n   Host webapp\n       HostName webapp.computing.clemson.edu\n       User bfgodfr\n       ForwardAgent yes\n       BatchMode yes\n       ConnectTimeout 2\n   ```\n\n1. Then you may run one of the deploy commands, depending on the desired target\n   tier. Run `make deploy` for production and `make dev` for development.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenjetson%2Fcpsc462-term-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenjetson%2Fcpsc462-term-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenjetson%2Fcpsc462-term-project/lists"}