Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
e55a769
Setting up GitHub Classroom Feedback
github-classroom[bot] Aug 30, 2025
6e46bd2
add deadline
github-classroom[bot] Aug 30, 2025
45ddb92
Add react app template
Nicholas-Cheng-De-Fei Sep 7, 2025
1a1d521
Merge pull request #2 from CS3219-AY2526Sem1/react-template
Nicholas-Cheng-De-Fei Sep 7, 2025
91d7c05
Change to DaisyUI
Nicholas-Cheng-De-Fei Sep 8, 2025
cc971f5
Add landing page
Nicholas-Cheng-De-Fei Sep 9, 2025
980f28c
Implement dynamic routing
Nicholas-Cheng-De-Fei Sep 9, 2025
467df6c
Add uv project template
rollingpencil Sep 19, 2025
49353e2
Implement logger and get env utils
rollingpencil Sep 20, 2025
0f9c7f4
Switch to TortoiseORM and add db models
rollingpencil Sep 21, 2025
0086830
Implement Question GET REST APIs
rollingpencil Sep 21, 2025
64d5a8b
Sort import
rollingpencil Sep 21, 2025
88e4db9
Implement Question CUD endpoint
rollingpencil Sep 21, 2025
ab7dd69
delete commented code
Nicholas-Cheng-De-Fei Sep 23, 2025
bb38a24
Add tests for models
rollingpencil Sep 23, 2025
5df86a5
Add routes test
rollingpencil Sep 23, 2025
9d2ee59
Add qns controller tests and utils tests
rollingpencil Sep 23, 2025
eff0dbd
Add eslint and prettier
Nicholas-Cheng-De-Fei Sep 24, 2025
3a2c06d
Initialize User Service project with basic uv project structure
Jovin-Ang Sep 25, 2025
5396a29
Initialise alembic
Jovin-Ang Sep 25, 2025
7328868
Implement logger and get env helper method
Jovin-Ang Sep 25, 2025
8fb684d
Add db models and migrations
Jovin-Ang Sep 25, 2025
4b33464
Add authentication backend
Jovin-Ang Sep 25, 2025
b21bac9
Move db provider methods to a separate file
Jovin-Ang Sep 25, 2025
09d7388
Add authentication and user routes
Jovin-Ang Sep 25, 2025
415085f
Style changes
Nicholas-Cheng-De-Fei Sep 26, 2025
8f8a291
Merge pull request #7 from CS3219-AY2526Sem1/react-configuration
GavinSin Sep 26, 2025
727da8a
Update user schemas to enforce password length and refine role_id val…
Jovin-Ang Sep 26, 2025
f6df2ba
Remove unused exception
rollingpencil Sep 26, 2025
6e1d451
Move gitignore to correct folder
rollingpencil Sep 26, 2025
e9a5e27
Add JWT secret configuration and enhance user management logging
Jovin-Ang Sep 26, 2025
0f6ae5a
Add password validation logic to UserManager
Jovin-Ang Sep 26, 2025
14e4357
Merge branch 'master' into gateway
Sep 27, 2025
c0949e6
Add gitignore
Sep 27, 2025
92d39a3
Style fix
Sep 27, 2025
635a912
Add cookie middleware to FastAPI
Sep 27, 2025
f39df37
Add front end API to communicate with backend
Sep 27, 2025
587ee7c
Update login to communicate with backend
Sep 27, 2025
2b77310
Add register page
Sep 27, 2025
4a48c73
Update landing page
Sep 27, 2025
17d06e8
Add base styles and typography
GavinSin Sep 28, 2025
318dcfa
Update landing page with new figma design
GavinSin Sep 28, 2025
183dc98
Update Login page with new figma design
GavinSin Sep 28, 2025
bd1a7e5
Update Register.tsx to use enum
sheenkerr Sep 28, 2025
aa09634
Merge pull request #8 from CS3219-AY2526Sem1/qns-svc-be
GavinSin Sep 28, 2025
9a884ca
Merge pull request #27 from CS3219-AY2526Sem1/gateway
GavinSin Sep 28, 2025
87c6d3e
Merge branch 'master' into base-styling
GavinSin Sep 28, 2025
428ce9d
Refactor configuration management to use pydantic-settings for enviro…
Jovin-Ang Sep 28, 2025
70dba28
Remove role_id from registration route request body
Jovin-Ang Sep 28, 2025
2bc109c
Fix role_id type mismatch in models.py
Jovin-Ang Sep 28, 2025
8277c15
Fix dependency issues
Nicholas-Cheng-De-Fei Sep 29, 2025
90eda89
Merge pull request #31 from CS3219-AY2526Sem1/fix-dependency-issues
rollingpencil Sep 29, 2025
21b872e
Remove Roles enum from Register.tsx
Jovin-Ang Sep 29, 2025
89a68f0
Merge pull request #30 from CS3219-AY2526Sem1/gateway
Jovin-Ang Sep 29, 2025
83697bc
Add base template
Nicholas-Cheng-De-Fei Sep 30, 2025
84f32fe
Refactor project models structure
Jovin-Ang Oct 2, 2025
65186aa
Refactor db related files structure
Jovin-Ang Oct 2, 2025
e6e027e
Refactor authentication and routes file structure
Jovin-Ang Oct 2, 2025
73a41c6
Rename get_database_strategy to private method
Jovin-Ang Oct 2, 2025
5c14576
Add user to queue
Nicholas-Cheng-De-Fei Oct 3, 2025
e171931
Add and remove users from queue
Nicholas-Cheng-De-Fei Oct 4, 2025
7b1b7dd
Add confirmation when a match is found
Nicholas-Cheng-De-Fei Oct 5, 2025
0e0853f
Update existing pages with base styles
GavinSin Oct 6, 2025
78186a9
Merge pull request #32 from CS3219-AY2526Sem1/gateway
rollingpencil Oct 7, 2025
f565a01
Add Dashboard and NavBar component
GavinSin Oct 7, 2025
5839da1
Add Matching component
GavinSin Oct 7, 2025
4629b70
Merge branch 'master' into base-styling
GavinSin Oct 7, 2025
0501788
Revert commits for Dashboard, Matching and NavBar components
GavinSin Oct 8, 2025
49a93b9
Recover latest env template
GavinSin Oct 8, 2025
b3d6046
Update user svc's env template to the latest version
GavinSin Oct 8, 2025
3169f69
Add category related endpoints
rollingpencil Oct 8, 2025
6a4877e
Add test
rollingpencil Oct 8, 2025
303ff3e
Refactor authentication to support service separation and JWT-based auth
Jovin-Ang Oct 9, 2025
5b6c7d9
Use X-User-ID header for authenticated user context
Jovin-Ang Oct 9, 2025
d5caa6b
Include user ID in login response via custom bearer transport
Jovin-Ang Oct 10, 2025
15af913
Add docstrings to custom classes and methods in auth_svc.py
Jovin-Ang Oct 10, 2025
8fd3b3b
Merge pull request #26 from CS3219-AY2526Sem1/base-styling
rollingpencil Oct 10, 2025
b4955d3
Merge branch 'master' into user-svc
Oct 10, 2025
1a8ec81
Update matching algorithm
Nicholas-Cheng-De-Fei Oct 11, 2025
d61ccb5
Add logging to matching service
Nicholas-Cheng-De-Fei Oct 11, 2025
e4520a2
Update timeout duration
Nicholas-Cheng-De-Fei Oct 11, 2025
3358612
Merge pull request #38 from CS3219-AY2526Sem1/user-svc
rollingpencil Oct 12, 2025
748af9f
Merge pull request #37 from CS3219-AY2526Sem1/24/category-api
Nicholas-Cheng-De-Fei Oct 13, 2025
01f80da
Merge pull request #33 from CS3219-AY2526Sem1/matching-service-base
GavinSin Oct 13, 2025
4d797c0
Add difficulty api endpoint
rollingpencil Oct 13, 2025
1199e60
Add test for difficulties api endpoint
rollingpencil Oct 13, 2025
7ce3f76
Updated category and difficulty to insensitive filtering
rollingpencil Oct 14, 2025
0a51b47
Merge pull request #41 from CS3219-AY2526Sem1/25/difficulty-api
Nicholas-Cheng-De-Fei Oct 15, 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
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"files.insertFinalNewline": true
}
24 changes: 24 additions & 0 deletions PeerPrep/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
3 changes: 3 additions & 0 deletions PeerPrep/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Ignore artifacts:
build
coverage
1 change: 1 addition & 0 deletions PeerPrep/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
69 changes: 69 additions & 0 deletions PeerPrep/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh

## Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:

```js
export default tseslint.config([
globalIgnores(["dist"]),
{
files: ["**/*.{ts,tsx}"],
extends: [
// Other configs...

// Remove tseslint.configs.recommended and replace with this
...tseslint.configs.recommendedTypeChecked,
// Alternatively, use this for stricter rules
...tseslint.configs.strictTypeChecked,
// Optionally, add this for stylistic rules
...tseslint.configs.stylisticTypeChecked,

// Other configs...
],
languageOptions: {
parserOptions: {
project: ["./tsconfig.node.json", "./tsconfig.app.json"],
tsconfigRootDir: import.meta.dirname,
},
// other options...
},
},
]);
```

You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:

```js
// eslint.config.js
import reactX from "eslint-plugin-react-x";
import reactDom from "eslint-plugin-react-dom";

export default tseslint.config([
globalIgnores(["dist"]),
{
files: ["**/*.{ts,tsx}"],
extends: [
// Other configs...
// Enable lint rules for React
reactX.configs["recommended-typescript"],
// Enable lint rules for React DOM
reactDom.configs.recommended,
],
languageOptions: {
parserOptions: {
project: ["./tsconfig.node.json", "./tsconfig.app.json"],
tsconfigRootDir: import.meta.dirname,
},
// other options...
},
},
]);
```
25 changes: 25 additions & 0 deletions PeerPrep/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import js from "@eslint/js";
import globals from "globals";
import tseslint from "typescript-eslint";
import pluginReact from "eslint-plugin-react";
import { defineConfig } from "eslint/config";
import eslintConfigPrettier from "eslint-config-prettier/flat";

export default defineConfig([
{
files: ["**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
plugins: { js },
extends: ["js/recommended", "prettier"],
languageOptions: { globals: globals.browser },
},
tseslint.configs.recommended,
pluginReact.configs.flat.recommended,
{
rules: {
...pluginReact.configs.flat.recommended.rules,
"react/react-in-jsx-scope": "off",
"react/jsx-uses-react": "off",
},
},
eslintConfigPrettier,
]);
12 changes: 12 additions & 0 deletions PeerPrep/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>PeerPrep</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/frontend/main.tsx"></script>
</body>
</html>
Loading