Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
8719fcc
feat(course entity): add course_professors col and unique constraint …
taheralfayad Mar 11, 2026
a59e7ea
feat(account and term ids): modify account id and term id values to f…
taheralfayad Mar 13, 2026
fefd590
chore(Makefile): organize makefile
taheralfayad Mar 13, 2026
d5780db
Merge branch 'dev' of github.com:ucfopen/UDOIT into issue/1089-admin_…
taheralfayad Mar 23, 2026
3161205
feat(admin panel): update admin panel core logic to retrieve data fro…
taheralfayad Mar 23, 2026
13ffcf5
feat(retrieval command): add canvas api command to retrieve canvas data
taheralfayad Mar 23, 2026
00038ce
feat(repositories): add repositories for account and term tables
taheralfayad Mar 23, 2026
62315ff
fix(canvas lms): remove setLmsAccountId and setTermId calls in update…
taheralfayad Mar 23, 2026
ca95d0f
refactor(sync controller): deleted unused getInstructorNamesForCourse…
taheralfayad Mar 23, 2026
4b18e4b
fix(admin panel css): add height constraint to select
taheralfayad Mar 24, 2026
f0a84e3
feat(makefile): remove prod cache dir when running clean cache
taheralfayad Mar 27, 2026
c62993d
fix(session service): fix faulty uuid check in session service
taheralfayad Mar 27, 2026
45f36fd
refactor(admin): remove users page
taheralfayad Mar 27, 2026
24d196a
refactor(admin): removing user page references from admin header
taheralfayad Mar 27, 2026
e8d681d
refactor(admin reports page): use selectedCourse data instead of retr…
taheralfayad Mar 27, 2026
74ea9a3
refactor(api js): remove api endpoints that no longer exist
taheralfayad Mar 27, 2026
7f654d9
refactor(admin controller): remove unused api endpoints and add repor…
taheralfayad Mar 27, 2026
c8f30b8
feat(Report): return scan rules in report
taheralfayad Mar 27, 2026
f22d524
fix(gitignore): ignore linter cache
taheralfayad Mar 27, 2026
6adc195
fix(migrations): skip if db engine is not mysql
taheralfayad Mar 27, 2026
c4c8d43
fix(admin controller): get all issues rather than getting only active…
taheralfayad Mar 27, 2026
e30904d
feat(analyzeReport): add function to trim ignored issues in database
taheralfayad Mar 27, 2026
91adff9
docs(.env.example): document the need for admin panel data retrieval …
taheralfayad Mar 27, 2026
6273b2f
feat(admin panel retrieval): ux improvements
taheralfayad Mar 27, 2026
c3c4a8c
fix: frontend rendering issue due to null variable
Ishfaq-code Mar 31, 2026
9eca990
feat: combined course report
Ishfaq-code Mar 31, 2026
39ab463
fix: if admin don't check for course ID
Ishfaq-code Mar 31, 2026
945633f
fix: show latest report data in courses table
Ishfaq-code Mar 31, 2026
0dee315
Merge pull request #1149 from Ishfaq-code/scan-single-course
taheralfayad Apr 2, 2026
f274ed5
Merge pull request #1147 from Ishfaq-code/view-all-courses
taheralfayad Apr 2, 2026
6b5c7ad
feat(admin reports page): add status pill and form rule name to table
taheralfayad Apr 2, 2026
f3c6f8e
fix(admin dashboard): use latestReport reference in stats
taheralfayad Apr 2, 2026
a84209e
Center text on admin page
dmols Apr 7, 2026
b320af5
added script for showing all migrations
dmols Apr 7, 2026
86a0b05
docs(env example): change admin_retrieval_lms_url to be more precise
taheralfayad Apr 9, 2026
3912963
fix(admin retrieval command): fix required env vars to match actual env
taheralfayad Apr 9, 2026
a1c5e02
fix(mgiration v0312): add a block to set lms_term_id to null if a rel…
taheralfayad Apr 9, 2026
87113f0
fix(migration v0312): fix sql text formatting
taheralfayad Apr 9, 2026
63f9a33
fix(admin courses page): remove instructors from getCombinedCourse
taheralfayad Apr 9, 2026
c4a2671
fix(admin app): show admin filters across pages
taheralfayad Apr 9, 2026
ea6eb1b
fix(admin courses page): replace suggestions with potentials
taheralfayad Apr 9, 2026
f1408a4
fix(admin courses page): remove account name from table
taheralfayad Apr 9, 2026
0342a62
fix(courses page): remove miscellaneous backticks
taheralfayad Apr 10, 2026
fba67a2
refactor(lti): add course titles using the LTI information
taheralfayad Apr 16, 2026
48f65c6
fix(lti controller): remove unused dev lti authorize endpoint
taheralfayad Apr 16, 2026
6373007
feat(migrations): add remediation for new course id rows in the database
taheralfayad Apr 22, 2026
15de96c
Merge branch 'dev' into issue/1089-admin_page_loading_issues_2
taheralfayad Apr 22, 2026
3bdcbcc
fix(makefile): migrate down command
taheralfayad Apr 22, 2026
0b0517e
Merge branch 'issue/1089-admin_page_loading_issues_2' of github.com:u…
taheralfayad Apr 22, 2026
ece44d4
fix(app): merge dev
taheralfayad Apr 28, 2026
30f7ac7
fix(admin panel retrieve): use lms domain env when instantiating canvas
taheralfayad Apr 28, 2026
1260e60
Merge branch 'dev' into issue/1089-admin_page_loading_issues_2
dmols May 7, 2026
af8a319
Change based on DBAL v4+ requirements
dmols May 7, 2026
1fb8eff
fix(migrations): typo in 0312
taheralfayad May 14, 2026
e4a8337
Removed anything related to scanning a course thru admin panel
dmols May 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -113,3 +113,17 @@ YOUTUBE_API_KEY=""
###> jwk base url ###
JWK_BASE_URL="https://canvas.instructure.com/"
###> jwk base url ###

############# Admin Panel Data Retrieval Params:

###> admin panel retrieval task lms url ###
ADMIN_RETRIEVAL_LMS_DOMAIN="domain"
###> admin panel retrieval task lms url ###

###> admin panel retrieval task lms token ###
ADMIN_RETRIEVAL_API_TOKEN="token"
###> admin panel retrieval task lms token ###

###> admin panel retrieval task institution id ###
ADMIN_PANEL_INSTITUTION_ID=1
###> admin panel retrieval task institution id ###
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
!/assets/js/Components/Icons/
###< symfony/framework-bundle ###

###> php linter cache ###
.php-cs-fixer.*
###> php linter cache ###

###> symfony/phpunit-bridge ###
.phpunit
.phpunit.result.cache
Expand Down
110 changes: 91 additions & 19 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,107 @@ ifneq (,$(wildcard ./.ins.env))
export
endif

# spin up the containers
start:
docker compose -f docker-compose.nginx.yml up
# ──────────────────────────────────────────────
# Variables
# ──────────────────────────────────────────────

COMPOSE := docker compose -f docker-compose.nginx.yml
Comment thread
mbusch3 marked this conversation as resolved.

create-migrations:
make clean-cache
docker compose -f docker-compose.nginx.yml run php php bin/console doctrine:migrations:diff
# ──────────────────────────────────────────────
# Container Management
# ──────────────────────────────────────────────

# set up the database
migrate:
docker compose -f docker-compose.nginx.yml run php php bin/console doctrine:migrations:migrate
## Spin up the containers
start:
$(COMPOSE) up

# Down the containers
## Bring down the containers
down:
docker compose -f docker-compose.nginx.yml down
$(COMPOSE) down

# rebuild the containers from the ground up
## Rebuild the containers from the ground up
build:
docker compose -f docker-compose.nginx.yml up --build
$(COMPOSE) up --build

# ──────────────────────────────────────────────
# Database / Migrations
# ──────────────────────────────────────────────

## Generate a migration by diffing the current schema
create-migrations: clean-cache
$(COMPOSE) run --rm php php bin/console doctrine:migrations:diff

# clear the Symfony cache
## Validate the mapping files against the schema
validate: clean-cache
$(COMPOSE) run --rm php php bin/console doctrine:schema:validate

## Dump the SQL needed to update the schema
dump-sql: clean-cache
$(COMPOSE) run --rm php php bin/console doctrine:schema:update --dump-sql

## Run migrations
## usage: `make migrate` to run all pending, or `make migrate VERSION=20260311150018` for a single migration
migrate:
ifdef VERSION
$(COMPOSE) run --rm php php bin/console doctrine:migrations:execute --up 'DoctrineMigrations\Version$(VERSION)'
else
$(COMPOSE) run --rm php php bin/console doctrine:migrations:migrate
endif

# Show migrations
# usage: `make migration-list` to show all migrations
migration-list:
$(COMPOSE) run --rm php php bin/console doctrine:migrations:list

## Run all pending migrations up to and including a specific version
## usage: `make migrate-to VERSION=20260311150018`
migrate-to:
$(COMPOSE) run --rm php php bin/console doctrine:migrations:migrate 'DoctrineMigrations\Version$(VERSION)'

## Revert the changes of a single migration
## usage: `make migrate-down VERSION=20260311150018`
migrate-down:
$(COMPOSE) run --rm php php bin/console doctrine:migrations:execute 'DoctrineMigrations\Version$(VERSION)' --down

# ──────────────────────────────────────────────
# Utilities
# ──────────────────────────────────────────────

## Clear the Symfony cache
clean-cache:
docker compose -f docker-compose.nginx.yml run php bin/console cache:clear
$(COMPOSE) run --rm php bin/console cache:clear
rm -rf ./var/cache/prod/

.PHONY: admin-panel-retrieve-data

VALID_TABLES := accounts terms courses

admin-panel-retrieve-data: clean-cache
@if [ -n "$(TABLES)" ] && [ -z "$(filter $(TABLES),$(VALID_TABLES))" ]; then \
echo "Error: Invalid table(s): '$(TABLES)'"; \
echo "Usage: make admin-panel-retrieve-data TABLES=\"accounts terms courses\""; \
echo "Valid tables: $(VALID_TABLES)"; \
exit 1; \
fi
$(COMPOSE) run --rm php php bin/console app:admin-panel-retrieval $(foreach table,$(TABLES),--tables=$(table))
# ──────────────────────────────────────────────
# Institution Seeding
# ──────────────────────────────────────────────

# fill your institutions table data with the variables in your ins.env file. Use this command if you are using mysql.
## Insert institution row (MySQL)
## Reads variables from .ins.env
ins-mysql:
docker exec -it udoit3-db mysql -u root -proot udoit3 -e "INSERT INTO institution (title, lms_domain, lms_id, lms_account_id, created, status, vanity_url, metadata, api_client_id, api_client_secret) VALUES ('$(TITLE)', '$(LMS_DOMAIN)', '$(LMS_ID)', '$(LMS_ACCOUNT_ID)', '$(CREATED)', '$(STATUS)', '$(VANITY_URL)', '$(METADATA)', '$(API_CLIENT_ID)', '$(API_CLIENT_SECRET)');"
docker exec -it udoit3-db mysql -u root -proot udoit3 \
-e "INSERT INTO institution \
(title, lms_domain, lms_id, lms_account_id, created, status, vanity_url, metadata, api_client_id, api_client_secret) \
VALUES \
('$(TITLE)', '$(LMS_DOMAIN)', '$(LMS_ID)', '$(LMS_ACCOUNT_ID)', '$(CREATED)', '$(STATUS)', '$(VANITY_URL)', '$(METADATA)', '$(API_CLIENT_ID)', '$(API_CLIENT_SECRET)');"

# fill your institutions table data with the variables in your institutions.env file. Use this command if you are using postgresql.
## Insert institution row (PostgreSQL)
## Reads variables from .ins.env
ins-psql:
docker exec -it -e PGPASSWORD=root udoit3-db psql -U root -d udoit3 -w -c "INSERT INTO institution (title, lms_domain, lms_id, lms_account_id, created, status, vanity_url, metadata, api_client_id, api_client_secret) VALUES ('$(TITLE)', '$(LMS_DOMAIN)', '$(LMS_ID)', '$(LMS_ACCOUNT_ID)', '$(CREATED)', '$(STATUS)', '$(VANITY_URL)', '$(API_CLIENT_ID)', '$(API_CLIENT_SECRET)');"
docker exec -it -e PGPASSWORD=root udoit3-db psql -U root -d udoit3 -w \
-c "INSERT INTO institution \
(title, lms_domain, lms_id, lms_account_id, created, status, vanity_url, metadata, api_client_id, api_client_secret) \
VALUES \
('$(TITLE)', '$(LMS_DOMAIN)', '$(LMS_ID)', '$(LMS_ACCOUNT_ID)', '$(CREATED)', '$(STATUS)', '$(VANITY_URL)', '$(API_CLIENT_ID)', '$(API_CLIENT_SECRET)');"
Loading
Loading