Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
383 commits
Select commit Hold shift + click to select a range
328efc8
fix: profile placeholder error
m10090 Mar 17, 2025
95b65f2
change: tsconfig
m10090 Mar 17, 2025
0c39783
remove: (authorized-only) route group
m10090 Mar 17, 2025
181ec61
remove: dashboard
m10090 Mar 17, 2025
66b51f2
remove: training artefact
m10090 Mar 17, 2025
44b64c4
remove: training artefact
m10090 Mar 17, 2025
938e912
Merge pull request #23 from ICPCPlatform/training-dashboard-omar
m10090 Mar 17, 2025
987c3b5
material: send
m10090 Mar 17, 2025
4b9104c
fix(standings): Improve table layout and scrolling behavior
TryOmar Mar 17, 2025
fc31141
fix: contest-stading not showing all users
m10090 Mar 18, 2025
f0590e0
remove: logs from getTrainingFullData
m10090 Mar 18, 2025
fdae096
enforce: ssr in trianings/[trianingId]/*
m10090 Mar 18, 2025
59f3e32
view: contest standing by contestId
m10090 Mar 18, 2025
b2e1cde
fix(contest standing): table alignment
m10090 Mar 18, 2025
6b9b133
impl: basic navbar
m10090 Mar 18, 2025
d28340b
impl: basic material page
m10090 Mar 18, 2025
cbf2898
import: simple style
m10090 Mar 18, 2025
270cb58
rename: userData to UserDataJwt to align with the standard
m10090 Mar 22, 2025
b2f3d11
impl: my-trainings data fetching
m10090 Mar 22, 2025
9e68a5d
Docs For ERD 3.3
cgmoreda Mar 31, 2025
3adb940
ERD v2.1 documentation for user and training schema
cgmoreda Mar 31, 2025
3a1e68c
feat: update database schema and dependencies for improved functionality
cgmoreda Mar 31, 2025
3cec4c7
feat: Updated DB to match with ERD 3.3 and fix issues
cgmoreda Mar 31, 2025
eac1877
Update src/lib/db/schema/user/Users.ts
cgmoreda Mar 31, 2025
54014ee
Update src/lib/db/schema/user/EmailAuth.ts
cgmoreda Mar 31, 2025
213bea8
Fixing Khaled Requests
cgmoreda Mar 31, 2025
26d410d
Merge branch 'reda-db-review-nd-fix' of github.com:ICPCPlatform/icpc-…
cgmoreda Mar 31, 2025
db06751
Merge pull request #25 from ICPCPlatform/reda-db-review-nd-fix
m10090 Mar 31, 2025
e7657bf
refactor: remove unused files and improve middleware structure
m10090 Apr 5, 2025
f174315
Merge remote-tracking branch 'origin/development' into refactor-document
m10090 Apr 5, 2025
26de7bc
refactor: update Blocks and Trainings schemas to include type definit…
m10090 Apr 5, 2025
405a317
feat: implement edit contests and edit materials pages with server ac…
m10090 Apr 5, 2025
e76f57a
feat: add security check in middleware to block requests with x-user …
m10090 Apr 5, 2025
c710b99
feat: expand training permissions and update middleware to handle new…
m10090 Apr 5, 2025
94d22d9
refactor: replace decryptSession with getUserData for user authentica…
m10090 Apr 5, 2025
aaed78e
refactor(auth): unify login and register styling
TryOmar Apr 7, 2025
2aa6917
refactor(edit-profile): unify form styles via global CSS
TryOmar Apr 8, 2025
968bf95
refactor(profile): Consolidate profile styles and fix Arabic font ren…
TryOmar Apr 8, 2025
7c1a3b1
refactor(css): restructure styling with component-specific CSS files
TryOmar Apr 8, 2025
37a8454
refactor(styles): refactored pages styles to use direct imports inste…
TryOmar Apr 11, 2025
40e88ca
Merge pull request #33 from ICPCPlatform/32-omar-refactor/auth-styling
m10090 Apr 12, 2025
de231ba
Merge branch 'development' into training-edits
m10090 Apr 14, 2025
304acfe
improve: training types to meet standards
m10090 Apr 14, 2025
0a48886
update: database types
m10090 Apr 14, 2025
5dc2c49
fix: middleware
m10090 Apr 15, 2025
4ef2919
fix: authenticaiton
m10090 Apr 15, 2025
e738723
impl: edit-material basic logic
m10090 Apr 15, 2025
961b2d9
Merge pull request #40 from ICPCPlatform/training-edits
m10090 Apr 15, 2025
b51e7f9
refactor: move data access functions to dao layer
cgmoreda Apr 26, 2025
c2aeea5
refactor: update training schema by modifying material column and types
cgmoreda Apr 26, 2025
c99fbd7
refactor: enhance getTrainingFullData to include blocks and update types
cgmoreda Apr 26, 2025
90b36c1
refactor: standardize import paths for Material and TrainingFullDTO t…
cgmoreda Apr 26, 2025
747044f
refactor: update getTrainingFullData to filter out hidden and deleted…
cgmoreda Apr 26, 2025
648fc3b
refactor: update import paths for training types and remove unused co…
cgmoreda Apr 26, 2025
ad622ef
feat: add custom hook useIsMobile to detect mobile viewport
cgmoreda Apr 26, 2025
fa0bd10
Update src/app/protected/trainings/[trainingId]/edit-materials/[block…
cgmoreda Apr 26, 2025
9115881
Merge pull request #45 from ICPCPlatform/training-edit-material
cgmoreda Apr 26, 2025
b01d2db
Merge branch 'development' into reda-refactoring-apr26
m10090 Apr 26, 2025
b524980
refactor : move edit-material to staff following RFC3
m10090 Apr 30, 2025
0b79d1e
impl: RFC3 training structure
m10090 May 2, 2025
b1a7d82
refactor: simplify training permissions type and enhance permission a…
m10090 May 2, 2025
acf28b4
feat: export TrainingPermissions type from permissions module
m10090 May 2, 2025
7432fe6
refactor: standardize import paths for Material and TrainingFullDTO t…
cgmoreda Apr 26, 2025
55fc427
refactor : move edit-material to staff following RFC3
m10090 Apr 30, 2025
370b253
impl: RFC3 training structure
m10090 May 2, 2025
bb14bfe
Merge branch 'development' of https://github.com/ICPCPlatform/icpc-pl…
m10090 May 2, 2025
2a7e7cc
refactor: remove unused updateMaterial function from staff materials …
m10090 May 3, 2025
3667f92
refactor: clean up imports and remove unused updateMaterial function …
m10090 May 3, 2025
22560af
feat: add validation schema for updateMaterial using zod
m10090 May 3, 2025
9ae77d9
feat: implement AddToLocalStorage component for managing local storage
m10090 May 3, 2025
e29d036
feat: enhance material management with validation and error handling …
m10090 May 3, 2025
ffe7a7f
feat(block-editor): add block error messages
ELglaly May 3, 2025
6ce8735
feat(permissions): add view block permission
ELglaly May 3, 2025
06a46ba
feat(training): add block validations
ELglaly May 3, 2025
7a7c5b6
feat(staff): add StaffTrainingTypes
ELglaly May 3, 2025
43dcc0c
feat(styles): add block component styling
ELglaly May 3, 2025
1817026
feat(dependencies): add heroicons react
ELglaly May 3, 2025
27ca509
feat(edit-blocks): add View blocks page
ELglaly May 3, 2025
319f017
feat(edit-blocks): add block actions and permissions
ELglaly May 3, 2025
58c1b2e
Merge remote-tracking branch 'origin/training-edit-material' into edi…
ELglaly May 3, 2025
8fe4943
feat(edit-block): add update block functionality
ELglaly May 3, 2025
339d63a
feat(block-form): implement block editing form
ELglaly May 3, 2025
d672623
feat(edit-blocks): add update block page
ELglaly May 3, 2025
11d279e
feat(edit-blocks): implement delete block functionality
ELglaly May 3, 2025
551e548
feat(edit-blocks): implement block update and delete
ELglaly May 3, 2025
92c45b8
fix(training): correct training type import
ELglaly May 3, 2025
d99be42
docs(edit-block): add jsdoc for deleteBlock
ELglaly May 4, 2025
30e9821
fix: git conflict marks
m10090 May 4, 2025
7587e44
Delete src/app/protected/trainings/[trainingId]/staff/materials/page.tsx
m10090 May 4, 2025
8ac0844
Merge remote-tracking branch 'origin/RFC3-structure' into edit-block
ELglaly May 6, 2025
351386a
Merge branch 'RFC3-structure' into training-edit-material
m10090 May 9, 2025
8876990
refactor: update training middleware to enhance permission checks and…
m10090 May 4, 2025
ec4d128
Merge pull request #46 from ICPCPlatform/reda-refactoring-apr26
TryOmar May 9, 2025
23b4391
refactor: rename validation schema for clarity in updateMaterial func…
m10090 May 9, 2025
eea70c7
feat: implement updateBlock function for editing training blocks with…
m10090 May 9, 2025
32bdc9a
feat: add BlockForm and UpdateBlock components for editing training b…
m10090 May 9, 2025
bb93e18
feat: add updateBlockSchema for form validation of training block upd…
m10090 May 9, 2025
7a6112c
feat: add Radix UI Switch and Toast components for enhanced UI functi…
m10090 May 9, 2025
d594707
fix: improve error handling and logging in block editing functionality
m10090 May 9, 2025
7de92bf
fix: update material query to check for null deleted blocks instead o…
m10090 May 9, 2025
4efb39a
feat: integrate Radix UI Toast component for enhanced user notificati…
m10090 May 9, 2025
01f4d13
Merge branch 'development' of https://github.com/ICPCPlatform/icpc-pl…
m10090 May 9, 2025
fdca8ed
Add trainings overview page showing all available trainings
TryOmar May 9, 2025
94005df
Update training navigation component
TryOmar May 9, 2025
c3011b3
Update training materials page
TryOmar May 9, 2025
01ee7e6
Merge pull request #51 from ICPCPlatform/RFC3-structure
m10090 May 9, 2025
1ebe10d
Refactor training materials page for improved layout and accessibility
TryOmar May 9, 2025
a98ec1b
feat: blocks create with training
m10090 May 9, 2025
5e3fadf
add: permission edit:staff (training)
m10090 May 10, 2025
8ef67b9
feat(edit-blocks): improve block edit UI
ELglaly May 10, 2025
20d9394
feat(edit-blocks): add edit block button
ELglaly May 10, 2025
eaf3b1a
feat(edit-blocks): add getBlockByNumber function
ELglaly May 10, 2025
c06a090
feat(edit-block): add edit block page
ELglaly May 10, 2025
d9f5939
feat(block): add date validation to block creation
ELglaly May 10, 2025
9525d8f
style(block.css): add toggle, date, badge styles
ELglaly May 10, 2025
e95dc69
feat(block-form): add date validation
ELglaly May 10, 2025
b2afc3b
feat(edit-blocks): display and edit training blocks
ELglaly May 10, 2025
c5c92a1
feat(edit-blocks): Update block functionality
ELglaly May 10, 2025
744285e
fix(edit-block): update block form and page
ELglaly May 10, 2025
10e7a77
feat: add user search functionality and refactor training form schema
m10090 May 14, 2025
a35ae56
feat: enhance training creation process with username validation and …
m10090 May 14, 2025
ffe82d1
feat: update Radix UI components and add Command, Dialog, and Popover…
m10090 May 16, 2025
34dddb6
chore: add url-pattern dependency and fix severity vulnerabilities
m10090 May 16, 2025
9f9e6ad
feat: implement addContestAction and add validation schema for contes…
m10090 May 16, 2025
4facad3
feat: implement deleteContestAction and validation schema for contest…
m10090 May 16, 2025
869d6ed
feat: implement addContestAction and update validation schema for con…
m10090 May 16, 2025
0e16ca0
feat: add user authentication and permission checks for contest actions
m10090 May 17, 2025
009454d
fix: remove runtime specification from middleware configuration
m10090 May 17, 2025
017ca24
feat: update Radix UI dependencies and add Dialog and Toast component…
m10090 May 17, 2025
e4290fb
fix: remove legacyBehavior from Link component in NavBar
m10090 May 17, 2025
7b7482b
feat: enhance addContestAction to include contestId and trigger path …
m10090 May 17, 2025
5f209ee
fix: update blockNumber validation to coerce input to number in addCo…
m10090 May 17, 2025
b2ad112
feat: add revalidation for contest actions after adding, deleting, an…
m10090 May 17, 2025
b313bc6
feat: implement contest management features including adding, updatin…
m10090 May 17, 2025
ae59981
feat(training): add training error messages
ELglaly May 19, 2025
2a35d1b
feat(training): add training validation schema
ELglaly May 19, 2025
2479c3a
feat(training): add 'private' status to trainingValidations
ELglaly May 19, 2025
887869f
feat(training-form): implement edit training form
ELglaly May 19, 2025
791ec8f
feat(training): add edit training form
ELglaly May 19, 2025
9c7bdfa
feat(permissions): add training permissions
ELglaly May 19, 2025
253e2a5
feat(training): update training validation schema
ELglaly May 19, 2025
22596f6
feat(training): export Status type
ELglaly May 19, 2025
ce8096d
fix(trainingValidations): improve title and description validation
ELglaly May 19, 2025
d884c08
feat(training): add title and description length validation
ELglaly May 19, 2025
3321017
refactor(trainingValidations): remove unused fields
ELglaly May 19, 2025
d56edde
feat(training-form): update training status options
ELglaly May 19, 2025
3614253
feat(training): add edit training page
ELglaly May 19, 2025
730467f
feat(training): add training edit functionality
ELglaly May 19, 2025
98c858c
Merge branch 'development' of https://github.com/ICPCPlatform/icpc-pl…
m10090 Jun 15, 2025
efa9485
Update src/app/protected/trainings/[trainingId]/staff/edit-blocks/[bl…
m10090 Jun 15, 2025
fcbae46
Merge pull request #56 from ICPCPlatform/edit-training
m10090 Jun 16, 2025
e405bc0
Merge pull request #55 from ICPCPlatform/training-view-material
m10090 Jun 16, 2025
c82e4b2
Merge pull request #53 from ICPCPlatform/training-edit-contest
m10090 Jun 16, 2025
08b1900
Merge branch 'development' of https://github.com/ICPCPlatform/icpc-pl…
m10090 Jun 16, 2025
9f55852
Merge branch 'development' into training-edit-blocks
m10090 Jun 16, 2025
d852417
Merge pull request #54 from ICPCPlatform/training-edit-blocks
m10090 Jun 16, 2025
78f5b4f
Merge branch 'development' into create-training
m10090 Jun 16, 2025
a5a32a5
Merge branch 'development' into training-edit-material
m10090 Jun 16, 2025
ab84e6d
Merge pull request #57 from ICPCPlatform/training-edit-material
m10090 Jun 16, 2025
cb24b79
fix: duration issue in create-training
m10090 Jun 16, 2025
53d8756
squash! fix: duration issue in create-training
m10090 Jun 16, 2025
667d4ee
feat(training-staff): add staff management feature
ELglaly Jun 17, 2025
606f525
feat(staff-mgmt): implement username search for adding staff
ELglaly Jun 17, 2025
c73a617
feat(staff-management): refactor add staff page
ELglaly Jun 23, 2025
b952a7f
feat(training-staff): add training staff list component
ELglaly Jun 23, 2025
0791554
feat(add-staff): implement user search component
ELglaly Jun 23, 2025
bb8c97d
feat(training-staff): implement add staff form
ELglaly Jun 23, 2025
5753fe2
feat(training-staff): Add/Refactor staff management
ELglaly Jun 23, 2025
6b956ca
feat(training-staff): enhance staff management components
m10090 Jun 23, 2025
2aa131c
Add DevToolsSidebar and toggle functionality to login page
TryOmar Jun 24, 2025
36a5736
Enhance DevToolsSidebar to support login functionality with credentia…
TryOmar Jun 24, 2025
8bc4954
Merge pull request #59 from ICPCPlatform/dev-tools-default-users
TryOmar Jun 24, 2025
2e9c6ec
Add LeaderBoard structure and update Contests and Trainings schemas
cgmoreda Jun 24, 2025
2dfc438
Merge pull request #60 from ICPCPlatform/reda-update-db
cgmoreda Jun 24, 2025
3ba8d61
fix(NavBar): update link for my trainings page
TryOmar Jun 25, 2025
5ce2a88
feat(my-trainings): My Trainings page layout and functionality
TryOmar Jun 25, 2025
053ed9c
Merge branch 'development' into fix-navigation
TryOmar Jun 25, 2025
44766a2
Merge pull request #62 from ICPCPlatform/development
m10090 Jun 25, 2025
1a9fe35
Merge branch 'fix-navigation' of https://github.com/ICPCPlatform/icpc…
TryOmar Jun 25, 2025
5f62d87
fix(NavBar): fixed hydration update About Us link structure
TryOmar Jun 25, 2025
a9412d4
refactor(getTrainingFullData): update to return flat leaderboard stru…
TryOmar Jun 25, 2025
348821b
feat(navigator): implement basic navigation
TryOmar Jun 25, 2025
c6d8f77
Update src/app/admin-only/create-training/page.tsx
m10090 Jun 25, 2025
b9b8f39
Update src/app/protected/trainings/[trainingId]/staff/edit-training/a…
m10090 Jun 25, 2025
d641edb
fix(training-layout): enhance training layout to display user roles a…
TryOmar Jun 25, 2025
9dcdc28
fix(contests-page): update training ID handling to await params and e…
TryOmar Jun 25, 2025
da4a465
Merge branch 'fix-navigation' of https://github.com/ICPCPlatform/icpc…
TryOmar Jun 25, 2025
c9f05e0
fix(getTrainingFullData): rename 'standing' to 'leaderboard' for clar…
TryOmar Jun 25, 2025
58c4b65
refactor(training-layout): replace inline navigation with TrainingNav…
TryOmar Jun 25, 2025
9baf61b
Merge pull request #63 from ICPCPlatform/fix-navigation
m10090 Jun 25, 2025
0bfd199
fix(training-overview): update participant count reference from 'stan…
TryOmar Jun 25, 2025
810c632
Merge pull request #64 from ICPCPlatform/fix-navigation
m10090 Jun 25, 2025
a42f4ae
Refactor: Unify trainings pages, clean up old pages, and update navi…
TryOmar Jun 25, 2025
c761282
feat(training/leaderboard): customizable columns and order for leader…
TryOmar Jun 25, 2025
60299c4
fix(edit-standing-view): await params for trainingId and ensure corre…
TryOmar Jun 25, 2025
7dbc30f
Update src/app/protected/trainings/[trainingId]/staff/edit-standing-v…
m10090 Jun 25, 2025
a8073f6
feat(style): used shadcn
TryOmar Jun 26, 2025
ff61a9e
Merge pull request #66 from ICPCPlatform/refactor/unify-trainings-pages
TryOmar Jun 26, 2025
216957e
Merge branch 'development' into feature/trainings-leaderboard
TryOmar Jun 26, 2025
a697045
feat: add Zod validation to standing view actions - Closes #67, PR #68
TryOmar Jun 26, 2025
19f06bf
feat: implement customizable leaderboard with Zod validation and secu…
TryOmar Jun 26, 2025
de3f906
Update src/app/protected/trainings/[trainingId]/(trainee)/leaderboard…
m10090 Jun 26, 2025
fec05f2
refactor(EditStandingViewForm): replace standard form with custom For…
TryOmar Jun 26, 2025
14022f2
fix(leaderboard/page): replace authentication check with notFound() f…
TryOmar Jun 26, 2025
b2dcfc8
refactor(EditStandingViewForm): integrate react-hook-form and Zod for…
TryOmar Jun 26, 2025
b6d58ee
Merge pull request #68 from ICPCPlatform/feature/trainings-leaderboard
m10090 Jun 26, 2025
2fa2cbc
feat(virtual-mentor): update mentor rules and personality to reflect …
TryOmar Jun 26, 2025
d854bf8
fix(virtual-mentor): robustly distinguish inline code vs code blocks …
TryOmar Jun 26, 2025
cf5b90d
refactor(virtual-mentor): reorganize header layout for professional l…
TryOmar Jun 26, 2025
d96c4d5
feat(schema): add Applications table for managing training applications
cgmoreda Jun 26, 2025
da09067
Merge pull request #72 from ICPCPlatform/reda-update-db-erd3.4
TryOmar Jun 26, 2025
c880f71
feat(applications): implement API routes for managing training applic…
TryOmar Jun 26, 2025
37076cb
refactor(applications): move application logic to actions file and re…
TryOmar Jun 26, 2025
12bacce
feat(applications): add Zod validation for trainingId in application …
TryOmar Jun 26, 2025
b5adb78
refactor(applications): implement database transactions in applicatio…
TryOmar Jun 26, 2025
0a8c21e
fix(virtual-mentor): use react-hook-form with zod validation and add …
TryOmar Jun 26, 2025
34a6697
refactor(virtual-mentor): remove deprecated API route and integrate v…
TryOmar Jun 26, 2025
cc49d2c
refactor(virtual-mentor): integrate form components for improved mess…
TryOmar Jun 26, 2025
ccb4e1d
feat(virtual-mentor): implement useAction hook for async message hand…
TryOmar Jun 26, 2025
ee308a3
impore : style useActionStatef
m10090 Jun 26, 2025
20df843
Merge pull request #71 from ICPCPlatform/feature/virtual-mentor
m10090 Jun 26, 2025
65b770b
Merge pull request #73 from ICPCPlatform/feature/apply-to-training
m10090 Jun 26, 2025
435f43f
fix: history not used in the ai respones
m10090 Jun 26, 2025
7476338
fix: clear chat
m10090 Jun 26, 2025
82cf0f7
refactor(middleware): update training permissions handling with UrlPa…
m10090 Jun 26, 2025
bfc8c47
feat(staff-management): implement staff management features including…
m10090 Jun 26, 2025
d1bc7b1
refactor(training-middleware): enhance training ID extraction with va…
m10090 Jun 26, 2025
c54eadd
refactor(trainings): enhance data handling and error management in tr…
m10090 Jun 26, 2025
a577875
Merge pull request #74 from ICPCPlatform/feature/virtual-mentor
m10090 Jun 27, 2025
a177e66
refactor(middleware): update training permissions handling with UrlPa…
m10090 Jun 26, 2025
d7d6303
feat(staff-management): implement staff management features including…
m10090 Jun 26, 2025
3e093a8
refactor(training-middleware): enhance training ID extraction with va…
m10090 Jun 26, 2025
410e197
refactor(materials): update import statement for Material type to ens…
m10090 Jun 27, 2025
066f053
refactor(training-actions): improve user authentication and permissio…
m10090 Jun 27, 2025
e503c09
refactor(training-middleware): enhance training ID extraction with va…
m10090 Jun 26, 2025
da86a5f
Update src/middlewares/authOnly.ts
m10090 Jun 27, 2025
9da7cef
refactor(training-data): restructure getTrainingFullData function to …
m10090 Jun 27, 2025
b571ae5
feat(training-layout): add Breadcrumb component and integrate staff r…
m10090 Jun 27, 2025
3062c80
refactor(types): standardize import statements for training-related t…
m10090 Jun 27, 2025
5869e08
fix: staff managment
m10090 Jun 27, 2025
838a66d
Revert "fix: staff managment"
m10090 Jun 27, 2025
6849a9c
fix: staff managment
m10090 Jun 27, 2025
60ae32e
fix: middleware
m10090 Jun 27, 2025
75b3b61
Merge pull request #75 from ICPCPlatform/fixing-permissions
TryOmar Jun 27, 2025
a7ac3e7
Update src/app/protected/trainings/[trainingId]/staff/edit-training/a…
m10090 Jun 27, 2025
e7b4dbb
Update getStaffRoles.ts
m10090 Jun 27, 2025
ee6b7a4
Merge pull request #78 from ICPCPlatform/update-getTrainingFullData
m10090 Jun 27, 2025
1530aec
Merge branch 'development' into refactor-training
m10090 Jun 27, 2025
f2344b5
feat: add camelcase-keys dependency and refactor leaderboard data han…
TryOmar Jun 27, 2025
e72f6ef
Merge pull request #77 from ICPCPlatform/refactor-training
TryOmar Jun 27, 2025
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
30 changes: 30 additions & 0 deletions .github/workflows/development-deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: deploy dev

on:
push:
branches:
- development
jobs:
build-and-push-image:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: development

- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: https://ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: |
ghcr.io/icpcplatform/icpc-platform:latest-dev
ghcr.io/icpcplatform/icpc-platform:dev-${{ github.sha }}
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,10 @@ Thumbs.db
# Build output
dist/
.cache/

# Playwright
node_modules/
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/
2 changes: 1 addition & 1 deletion components.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@
"hooks": "@/hooks"
},
"iconLibrary": "lucide"
}
}
File renamed without changes
File renamed without changes.
154 changes: 154 additions & 0 deletions doc/ERD 3/ERD 3.1.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
Table users {
user_id uuid [pk]
username varchar(255) [not null, unique]
password varchar(255) [not null]
gmail varchar(255) [unique]
cf_handle varchar(255) [not null]
vj_handle varchar(255) [not null]
phone_number varchar(15) [unique]
role varchar(50)
// last_online timestamp not needed
deleted timestamp
}
Table email_auth{
token varchar
user_id uuid [ref: -users.user_id]
expires_at timestamp // 7 days after
}
Table users_full_data {
user_id uuid [pk, ref: > users.user_id]

/* Academic */
institute_id integer [ref: > institutes.institute_id]
faculty_id integer [ref: > faculties.faculty_id]
department_id integer [ref: > departments.department_id]
community_id integer [ref: > communities.community_id]
academic_year integer
graduation_date date

/* Handles */
atcoder varchar(16) // case-insensitive (citext)
codechef varchar(15) // case-insensitive (citext)
leetcode varchar(30) // case-insensitive (citext)
cses varchar(16) // case-insensitive (citext)

/* Personal */
first_name_en varchar(20)
last_name_en varchar(20)
name_ar1 varchar(20)
name_ar2 varchar(20)
name_ar3 varchar(20)
name_ar4 varchar(20)
national_id char(14) [unique]
country_id integer [ref: > countries.country_id]
city_id integer [ref: > cities.city_id]
is_male boolean
image_url varchar(255)
whatsapp_phone_number varchar(15)

/* Socials */
facebook varchar(128)
linkedin varchar(30)
twitter varchar(16)
github varchar(40)
telegram varchar(32)

/* Server */
visibility_mask integer [default: 0]
registration_date timestamp //[default: now()]
}

Table cities{
city_id integer [pk]
city_name varchar(255)
}
Table communities{
community_id integer [pk]
community_name varchar(255)
}
Table faculties{
faculty_id integer [pk]
faculty_name varchar(255)
}
Table departments{
department_id integer [pk]
department_name varchar(255)
}
Table institutes{
institute_id integer [pk]
institute_name varchar(255)
}
Table countries{
country_id integer [pk]
country_name varchar(255)
}

Table training {
training_id integer [pk]
head_id uuid [ref: > users.user_id]
chief_judge uuid [ref: > users.user_id]
title varchar(128) [not null]
description varchar(512)
start_date date [not null]
duration smallint [not null] // in days
status varchar(50) // e.g., 'planned', 'active', 'completed'
deleted timestamp
}

Table staff {
training_id id [ref: > training.training_id]
user_id uuid [ref: > users.user_id]

mentor boolean [default: false]
problem_setter boolean [default: false]
instructor boolean [default: false]
co_head boolean [default: false]
coach boolean [default: false]

deleted timestamp
indexes {
(user_id, training_id) [pk]
}
}
Table trainee {
user_id uuid [ref: > users.user_id]
training_id integer [ref: > training.training_id]
mentor_id uuid [not null]
mentor_assigned_date timestamp [not null]
deleted timestamp
indexes {
(user_id, training_id) [pk]
}
}
Ref: trainee.(mentor_id, training_id) - staff.(user_id, training_id)


Table mentor_trainee_history{
trainee_id uuid
mentor_id uuid
training_id id [ref: > training.training_id]
start_date date
end_date date
Indexes {
(trainee_id,mentor_id,training_id) [pk]
}
}
Ref: mentor_trainee_history.(trainee_id, training_id) - trainee.(user_id, training_id)
Ref: mentor_trainee_history.(mentor_id, training_id) - staff.(user_id, training_id)

Table session {
week_number id
training_id id [ref: > training.training_id, not null]
title varchar(255) [not null]
description text
date date [not null]
deleted timestamp
Indexes {
(week_number,training_id) [pk]
}
}





180 changes: 180 additions & 0 deletions doc/ERD 3/ERD 3.2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
Table users {
user_id uuid [pk]
username varchar(255) [not null, unique]
password varchar(255) [not null]
gmail varchar(255) [unique]
cf_handle varchar(255) [not null]
vj_handle varchar(255) [not null]
phone_number varchar(15) [unique]
role varchar(50)
// last_online timestamp not needed
deleted timestamp
}
Table email_auth{
token varchar
user_id uuid [ref: -users.user_id]
expires_at timestamp // 7 days after
}
Table users_full_data {
user_id uuid [pk, ref: > users.user_id]

/* Academic */
institute_id integer [ref: > institutes.institute_id]
faculty_id integer [ref: > faculties.faculty_id]
department_id integer [ref: > departments.department_id]
community_id integer [ref: > communities.community_id]
academic_year integer
graduation_date date

/* Handles */
atcoder varchar(16) // case-insensitive (citext)
codechef varchar(15) // case-insensitive (citext)
leetcode varchar(30) // case-insensitive (citext)
cses varchar(16) // case-insensitive (citext)

/* Personal */
first_name_en varchar(20)
last_name_en varchar(20)
name_ar1 varchar(20)
name_ar2 varchar(20)
name_ar3 varchar(20)
name_ar4 varchar(20)
national_id char(14) [unique]
country_id integer [ref: > countries.country_id]
city_id integer [ref: > cities.city_id]
is_male boolean
image_url varchar(255)
whatsapp_phone_number varchar(15)

/* Socials */
facebook varchar(128)
linkedin varchar(30)
twitter varchar(16)
github varchar(40)
telegram varchar(32)

/* Server */
visibility_mask integer [default: 0]
registration_date timestamp //[default: now()]
}

Table cities{
city_id integer [pk]
city_name varchar(255)
}
Table communities{
community_id integer [pk]
community_name varchar(255)
}
Table faculties{
faculty_id integer [pk]
faculty_name varchar(255)
}
Table departments{
department_id integer [pk]
department_name varchar(255)
}
Table institutes{
institute_id integer [pk]
institute_name varchar(255)
}
Table countries{
country_id integer [pk]
country_name varchar(255)
}

Table training {
training_id integer [pk]
head_id uuid [ref: > users.user_id]
chief_judge uuid [ref: > users.user_id]
title varchar(128) [not null]
description varchar(512)
material json
standing json
standingview json
start_date date [not null]
duration smallint [not null] // in days
status varchar(50) // e.g., 'planned', 'active', 'completed','RoadMap'
deleted timestamp
}

Table Block{
training_id int [ref: > training.training_id]
block_number integer

title varchar(255) [not null]
description varchar
hidden boolean
date date [not null]
deleted timestamp
Indexes {
(training_id,block_number) [pk]
}

}

Table Contest{

training_id int
block_number int
contest_id int

group_id varchar
judge varchar
title varchar
description varchar

type varchar //practice,contest
pointspp int
first_points int
calcsystem int // default 0 => 90%

Indexes {
(training_id,block_number,contest_id) [pk]
}

}
ref: Contest.(training_id,block_number) > Block.(training_id,block_number)


Table staff {
training_id id [ref: > training.training_id]
user_id uuid [ref: > users.user_id]

mentor boolean [default: false]
problem_setter boolean [default: false]
instructor boolean [default: false]
co_head boolean [default: false]
manager boolean [default: false]

deleted timestamp
indexes {
(user_id, training_id) [pk]
}
}
Table trainee {
user_id uuid [ref: > users.user_id]
training_id integer [ref: > training.training_id]
mentor_id uuid [not null]
mentor_assigned_date timestamp [not null]
deleted timestamp
indexes {
(user_id, training_id) [pk]
}
}
Ref: trainee.(mentor_id, training_id) - staff.(user_id, training_id)


Table mentor_trainee_history{
trainee_id uuid
mentor_id uuid
training_id id [ref: > training.training_id]
start_date date
end_date date
Indexes {
(trainee_id,mentor_id,training_id) [pk]
}
}
Ref: mentor_trainee_history.(mentor_id, training_id) - staff.(user_id, training_id)
Ref: mentor_trainee_history.(trainee_id, training_id) - trainee.(user_id, training_id)

Loading
Loading