Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
554c382
chessClient instruction update
RubenAlvarezGJ Sep 9, 2025
6e240fc
chessClient instruction update
RubenAlvarezGJ Sep 9, 2025
fc9d76f
new node instructions
RubenAlvarezGJ Sep 9, 2025
6c97dfe
added module export to resolve middleware bug
Sep 11, 2025
d35dfab
added querying for user activities
Sep 12, 2025
e6091e9
added backend routes for updating activities
Sep 17, 2025
b16dcda
added activity fetching to modal and fixed bug with backend route
Sep 19, 2025
7c2802e
Readme updated, will be reviewing if any code needs fixing due to the…
DeMentidDev Sep 19, 2025
26ec483
updated activities modal to use activities fetched from backend
Sep 20, 2025
84c9ac0
Merge branch 'main' into activities-backend
Sep 20, 2025
0db714e
updated error catch block
Sep 20, 2025
ed68bbb
fixed failing test: 100% of tests passing now
RubenAlvarezGJ Sep 21, 2025
b219148
update readme
RubenAlvarezGJ Sep 21, 2025
d53a54c
Merge pull request #74 from YSTEMandChess/readme-edit
RubenAlvarezGJ Sep 21, 2025
651a795
fixed package-lock.json
RubenAlvarezGJ Sep 22, 2025
7563851
Merge pull request #80 from YSTEMandChess/frontend-tests-fix
RubenAlvarezGJ Sep 22, 2025
c5ac842
github actions workflow for CI
RubenAlvarezGJ Sep 22, 2025
3240056
Home & Mentor profile page have fixed designs; icons and images don't…
DeMentidDev Sep 22, 2025
fcaf381
Readme updated to match the current push made to main, and test accou…
DeMentidDev Sep 22, 2025
650b544
fixed file location
RubenAlvarezGJ Sep 23, 2025
8aef2d1
formatting fix
RubenAlvarezGJ Sep 23, 2025
dedbfd7
test
RubenAlvarezGJ Sep 23, 2025
ce1326c
test2
RubenAlvarezGJ Sep 23, 2025
9daf3c1
parsing fix
RubenAlvarezGJ Sep 24, 2025
2137e1b
debug
RubenAlvarezGJ Sep 24, 2025
c9580ef
debug
RubenAlvarezGJ Sep 24, 2025
fe7f697
debug
RubenAlvarezGJ Sep 24, 2025
6bfc97d
styling fixed for both aforementioned pages
DeMentidDev Sep 24, 2025
7e76e21
fix
RubenAlvarezGJ Sep 24, 2025
6ce83de
Merge branch 'main' of https://github.com/YSTEMandChess/react into Ho…
DeMentidDev Sep 24, 2025
88a51fa
Merge pull request #82 from YSTEMandChess/github-actions
RubenAlvarezGJ Sep 25, 2025
13f0244
Remove tracked root .DS_Store and clean up untracked .DS_Store files
Sep 15, 2025
cd351a7
chore(stockfish): remove legacy HTTP, fix binaries, update frontend s…
Sep 24, 2025
a5f2525
Merge pull request #85 from YSTEMandChess/cleanup/repo
F-Hejazi Sep 25, 2025
9756417
Merge pull request #83 from YSTEMandChess/Home_and_userpage_cleanup
yubrandon Sep 26, 2025
5616871
created activity model
Sep 26, 2025
94e8412
Merge branch 'activities-backend' of github.com:YSTEMandChess/react
yubrandon Sep 30, 2025
63afdb5
Merge branch 'activities-backend' of github.com:YSTEMandChess/react i…
yubrandon Oct 1, 2025
01cec7d
added scheduling for daily activities
yubrandon Oct 2, 2025
a63a506
added activity scheduler, activity reset not tested
yubrandon Oct 3, 2025
2a601e4
refactored activities model for mongoose
yubrandon Oct 8, 2025
d90d38b
added fetching completed dates to backend
yubrandon Oct 8, 2025
06a0d0d
added activities document creation at user creation
yubrandon Oct 9, 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
Binary file removed .DS_Store
Binary file not shown.
96 changes: 96 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: CI

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Use Node.js 18
uses: actions/setup-node@v4
with:
node-version: 18.x
cache: 'npm'

# middlewareNode
- name: Install dependencies (middlewareNode)
run: npm ci
working-directory: ./middlewareNode

- name: Build middlewareNode
run: npm run build --if-present
working-directory: ./middlewareNode

# chessClient
- name: Install dependencies (chessClient)
run: npm ci
working-directory: ./chessClient

- name: Lint chessClient
run: npm run lint
working-directory: ./chessClient

# chessServer
- name: Install dependencies (chessServer)
run: npm ci
working-directory: ./chessServer

- name: Build chessServer
run: npm run build --if-present
working-directory: ./chessServer

- name: Test chessServer
run: npm test
working-directory: ./chessServer

# stockfishServer
- name: Install dependencies (stockfishServer)
run: npm ci
working-directory: ./stockfishServer

- name: Build stockfishServer
run: npm run build --if-present
working-directory: ./stockfishServer

- name: Test stockfishServer
run: npm test
working-directory: ./stockfishServer

# react frontend
- name: Install dependencies (react frontend)
run: npm ci
working-directory: ./react-ystemandchess

- name: Create environment file
run: |
mkdir -p src/environments
cat <<EOF > src/environments/environment.js
export const environment = {
production: false,
agora: {
appId: '${{ secrets.APP_ID }}',
},
urls: {
middlewareURL: '${{ secrets.MIDDLEWARE_URL }}',
chessClientURL: '${{ secrets.CHESS_CLIENT_URL }}',
stockFishURL: '${{ secrets.STOCKFISH_URL }}',
chessServer: '${{ secrets.CHESS_SERVER }}',
},
};
EOF
working-directory: ./react-ystemandchess

- name: Build react-ystemandchess
run: CI=false npm run build --if-present
working-directory: ./react-ystemandchess

- name: Test react-ystemandchess
run: npm test
working-directory: ./react-ystemandchess
77 changes: 55 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,60 @@ This is an educational platform that combines chess instruction with STEM learni

## Development Environment Setup

To run the platform, you’ll need **Node.js v14**, **nodemon**, and **Apache** installed.
To run the platform, you’ll need **Node.js v18**, **nodemon**, and **Apache** installed.

### NodeJS

This project requires NodeJS version 14.
This project requires **Node.js v18.20.8**.

**Linux:**

```bash
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
```

**macOS:**

```bash
brew install node@14
```

Or download from [nodejs.org](https://nodejs.org/)

**Windows:**
Download and install from [nodejs.org](https://nodejs.org/)
We recommend using a version manager so everyone runs the same Node.js version consistently.

---

### Option 1: Using [Volta](https://volta.sh) (recommended)

Volta automatically uses the Node version pinned in this project’s `package.json`.

**Install Volta:**

- **Linux / macOS:**
```bash
curl https://get.volta.sh | bash
source ~/.bashrc # or ~/.zshrc
```
- **Windows:**
Download and run the installer from [volta.sh](https://volta.sh)

Now when you cd into this project, Volta will automatically install and use **Node.js v18.20.8**.

### Option 2: Using [nvm](https://github.com/nvm-sh/nvm)

If you prefer nvm:

- **Linux / macOS:**
```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.nvm/nvm.sh
```
Then:
```bash
nvm install 18.20.8
nvm use 18.20.8
```
(Optional) Set it as default:
```bash
nvm alias default 18.20.8
```
- **Windows:**
Use [nvm-windows](https://github.com/coreybutler/nvm-windows):

Download and run the installer from the [releases page](https://github.com/coreybutler/nvm-windows/releases).
Then install and use Node:
```powershell
nvm install 18.20.8
nvm use 18.20.8
```

### Nodemon

Nodemon automatically restarts your server whenever code changes are detected.
Expand Down Expand Up @@ -109,6 +137,12 @@ npm start # Start the API server

The server typically runs on port 8000. You should see "MongoDB Connected..." when it starts successfully.

**If you intend to test the mentor and student login pages, you may use the following usernames and passwords respectively:**

mentor 123123123

student 123123123

---

#### Main React Application (Frontend)
Expand Down Expand Up @@ -155,14 +189,13 @@ This service usually runs on port 8080.

#### Chess Client (Testing Interface)

Provides different views of the chess board for development:

```bash
cd chessClient
npm install
```

You can use the **Live Server extension in VS Code** to open the HTML files:
Run the http server on port 80 using: `npx http-server -p 80` to ensure that the chess board frame loads during any session.
You can use the **Live Server extension in VS Code** to open the HTML files for local testing of the chess board:

* **Board only:** Right-click `index.html` → "Open with Live Server"
* **Board with controls:** Right-click `parent.html` → "Open with Live Server"
Expand Down
Loading