Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
aebe6ab
sprint boot project
Oct 14, 2024
0ec826c
add react app
kirupanandhini Oct 15, 2024
ea223db
sprint cleared out
Oct 16, 2024
44a8f35
express application skeleton generated
Oct 16, 2024
7b79d60
add to branch
Purplecannon Oct 16, 2024
e11e65d
Add .env to .gitignore
Purplecannon Oct 16, 2024
76945bf
feat: added video upload route and integrated AWS SDK v3 for DigitalO…
Purplecannon Oct 16, 2024
1cb20be
sign up/login
kirupanandhini Oct 17, 2024
3e4bbb4
Merge pull request #1 from miahuynhh/signup/login
kirupanandhini Oct 17, 2024
e973d10
login and create
miahuynhh Oct 17, 2024
a1e0f1a
user.test.js added and written
CatherineXJJin Oct 18, 2024
2dc24c8
users
miahuynhh Oct 18, 2024
41338c1
installed mysql2 for database connection
miahuynhh Oct 18, 2024
d12df39
set up database.js
miahuynhh Oct 18, 2024
c638753
progress folder
miahuynhh Oct 18, 2024
bff6184
annotation create function
lyarrington Oct 18, 2024
47fc3d0
schema updates
miahuynhh Oct 18, 2024
a149cdf
some schema changes
miahuynhh Oct 18, 2024
c55325a
db test method added
miahuynhh Oct 18, 2024
4a42474
mia
miahuynhh Oct 18, 2024
1359d92
annotation create
lyarrington Oct 18, 2024
0fd8229
annotation create
lyarrington Oct 18, 2024
63c7a24
database debug
miahuynhh Oct 18, 2024
60b9d22
debug database
miahuynhh Oct 18, 2024
3758d0c
working on create still
miahuynhh Oct 18, 2024
f92b5ae
finish userCreate() method, installed bcrypt, next is defining the PO…
miahuynhh Oct 18, 2024
05b48b3
summary update
miahuynhh Oct 18, 2024
0826e55
Merge branch 'signup/login' into video-uploading
Purplecannon Oct 18, 2024
a0bf5a0
Add documentation
Purplecannon Oct 18, 2024
1c3e1f3
Trying out videoplayer, ongoing
Purplecannon Oct 18, 2024
3c40e58
try the most basic deployment
Purplecannon Oct 19, 2024
5565d77
switched to vite-react
Purplecannon Oct 20, 2024
8b37a2e
super basic video upload functionality implemented
Purplecannon Oct 20, 2024
31ac3c3
trying out react player& drop-upload
Purplecannon Oct 20, 2024
ee8a7be
Deleted old files
Purplecannon Oct 20, 2024
4256505
Deleted old files
Purplecannon Oct 20, 2024
a396ed0
node_modules deleted
Purplecannon Oct 21, 2024
765151d
toy code
Purplecannon Oct 21, 2024
d055b8f
Deleted unnecessary files
Purplecannon Oct 21, 2024
77dfa05
Deleted unnecessary files
Purplecannon Oct 21, 2024
f0331ce
Deleted unnecessary files
Purplecannon Oct 21, 2024
5b1bb4b
Deleted unnecessary files
Purplecannon Oct 21, 2024
4db63ed
Deleted unnecessary files
Purplecannon Oct 21, 2024
0f521bf
Merge branch 'video-uploading'
Purplecannon Oct 21, 2024
9f0d6be
back-end fixed
Purplecannon Oct 21, 2024
f8c6735
frontend fixed
Purplecannon Oct 21, 2024
cdb5f43
changed to login page
Purplecannon Oct 21, 2024
3919012
Deleted unnecessary files
Purplecannon Oct 21, 2024
fc15ae3
Deleted unnecessary files
Purplecannon Oct 21, 2024
6d8349b
merge users into main
miahuynhh Oct 22, 2024
0bb4a1d
merge users into main
miahuynhh Oct 22, 2024
dba7243
fixed conflicts, app running now
miahuynhh Oct 22, 2024
039d4f2
add code for PROJECTS table
miahuynhh Oct 22, 2024
3f30f14
new projects branch
miahuynhh Oct 22, 2024
910d576
moved files to git ignore
miahuynhh Oct 22, 2024
050bf80
to projects branch please
miahuynhh Oct 22, 2024
a3fa647
4 annotation method creation
lyarrington Oct 24, 2024
b71cd3f
Update week4.txt (Cat)
CatherineXJJin Oct 24, 2024
204a92f
Lauren week4 progress
lyarrington Oct 24, 2024
4dc099f
Lauren week4 progress
lyarrington Oct 24, 2024
86a3dad
Weekly Progress added. Deleted unnecessary files
Purplecannon Oct 25, 2024
000783d
Deleted old folder
Purplecannon Oct 25, 2024
72505ab
getProjects(), createProject() in projects.js implemented; database s…
miahuynhh Oct 28, 2024
e281f1c
implemented addUrl(), deleteProject(); cleaned up code in users.js
miahuynhh Oct 28, 2024
01d830e
some small modifications for db issues
miahuynhh Oct 29, 2024
1a8b8b6
frontend changes for signin/login
kirupanandhini Oct 29, 2024
89403dc
homepage 1.0
Purplecannon Oct 29, 2024
09437ad
added thumbnailUrl to PROJECTS table
miahuynhh Oct 29, 2024
6ef899f
fixed merge
miahuynhh Oct 29, 2024
f55fdfd
Merge pull request #4 from miahuynhh/projects
miahuynhh Oct 29, 2024
c2e394b
homepage 1.0
Purplecannon Oct 29, 2024
73aebfc
homepage 1.0
Purplecannon Oct 29, 2024
1cbd8fa
Create ci.yml
CatherineXJJin Oct 30, 2024
d665c2e
Update ci.yml
CatherineXJJin Oct 30, 2024
21086ab
Update ci.yml (added dependency path)
CatherineXJJin Oct 30, 2024
c02852e
Update ci.yml (changed dependency path)
CatherineXJJin Oct 30, 2024
56ce2c6
Update ci.yml (specified wording-directory)
CatherineXJJin Oct 30, 2024
5592963
Update ci.yml (updated working-directory path)
CatherineXJJin Oct 30, 2024
a639bfa
Update ci.yml (added working-directory specification to all steps)
CatherineXJJin Oct 30, 2024
bda0049
delete old database.js from main
miahuynhh Oct 30, 2024
2e00f97
integrated front and back end for signup or create user
miahuynhh Oct 31, 2024
46fa5bb
Merge pull request #6 from miahuynhh/projects
miahuynhh Oct 31, 2024
faa58d0
weekly progress udpate
miahuynhh Oct 31, 2024
b2623fe
added login handleSubmit function
kirupanandhini Oct 31, 2024
80e3c22
Merge pull request #7 from miahuynhh/login-request
miahuynhh Oct 31, 2024
32c7a1f
set up package.json in root dir (for deployment), added .gitignore i…
miahuynhh Oct 31, 2024
8e0504a
Merge pull request #8 from miahuynhh/projects
miahuynhh Oct 31, 2024
c927af1
updated frontend code to pass build for deployment (removed LoginSign…
miahuynhh Oct 31, 2024
29f4bf5
updated frontend code to pass build for deployment (removed LoginSign…
miahuynhh Oct 31, 2024
a031362
Merge branch 'main' into projects
miahuynhh Oct 31, 2024
6ccf254
Merge pull request #9 from miahuynhh/projects
miahuynhh Oct 31, 2024
e541a05
retrying deployment
miahuynhh Oct 31, 2024
1b4a63f
Merge pull request #10 from miahuynhh/projects
miahuynhh Oct 31, 2024
66b19f9
added TS module declarations, ensured TS and React types, allowed imp…
miahuynhh Oct 31, 2024
94d3da8
Merge pull request #11 from miahuynhh/projects
miahuynhh Oct 31, 2024
0414183
troubleshooting Cannot find module 'react-router-dom' error for deplo…
miahuynhh Oct 31, 2024
25297f1
Merge pull request #12 from miahuynhh/projects
miahuynhh Oct 31, 2024
2456b8a
troubleshoot deployment
miahuynhh Oct 31, 2024
d1c522e
Merge pull request #13 from miahuynhh/projects
miahuynhh Oct 31, 2024
c7dd263
troubleshoot deployment 2
miahuynhh Oct 31, 2024
b889be6
Merge pull request #14 from miahuynhh/projects
miahuynhh Oct 31, 2024
12d3cf4
removed node_modules
Purplecannon Oct 31, 2024
8c25ec1
updated weekly progress, cleaned up backend code
miahuynhh Oct 31, 2024
d266f5c
still trying deployment
miahuynhh Oct 31, 2024
8a21c99
Merge pull request #15 from miahuynhh/projects
miahuynhh Oct 31, 2024
aed8da0
fixed login path for front end
miahuynhh Oct 31, 2024
806f870
Merge pull request #16 from miahuynhh/projects
miahuynhh Oct 31, 2024
2145162
mocha dependencies
miahuynhh Nov 1, 2024
9a084c9
Merge pull request #17 from miahuynhh/projects
miahuynhh Nov 1, 2024
1f52da5
sign up and login fully implemented
miahuynhh Nov 4, 2024
5dc5697
Merge pull request #18 from miahuynhh/projects
miahuynhh Nov 4, 2024
b4dafc9
Resolve merge conflict between main and homepage by incorporating bot…
miahuynhh Nov 4, 2024
77d2be4
Merge pull request #5 from miahuynhh/homepage
miahuynhh Nov 4, 2024
ea76c54
refactored tables creation into services/tables.js
miahuynhh Nov 5, 2024
f91dd73
Merge pull request #19 from miahuynhh/projects
miahuynhh Nov 5, 2024
61f11cf
kirupa - weekly progress
kirupanandhini Nov 5, 2024
d6aa96c
changed to snake_case for columns in tables, updated backend code acc…
miahuynhh Nov 6, 2024
cacb075
merge documentation
Purplecannon Nov 6, 2024
2453114
restructure directories and files
miahuynhh Nov 6, 2024
9ba9ed7
Merge pull request #20 from miahuynhh/projects
miahuynhh Nov 6, 2024
9e0405e
Delete footnote-backend/node_modules directory
miahuynhh Nov 6, 2024
72785d6
resolved merge conflict w documentation branch
miahuynhh Nov 6, 2024
e23560c
documentation: source cod and layout completed
Purplecannon Nov 6, 2024
a022137
rebased
Purplecannon Nov 6, 2024
497c098
update ci.yml to run CI for commits to all branches and PRs to main
miahuynhh Nov 6, 2024
d411ffe
Set up ESLint with Airbnb Style Guide
Nov 6, 2024
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 added .DS_Store
Binary file not shown.
27 changes: 27 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"env": {
"browser": true,
"node": true,
"mocha": true,
"es2021": true
},
"extends": [
"airbnb-base",
"plugin:@typescript-eslint/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 12,
"sourceType": "module"
},
"plugins": [
"import",
"@typescript-eslint",
"mocha"
],
"rules": {
// Your custom rules here
"no-console": "warn", // Example rule
"mocha/no-exclusive-tests": "error" // Example Mocha rule
}
}
37 changes: 37 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs

name: ci

on:
push:
branches: "*"
pull_request:
branches: "main"

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
- name: "checkout repository"
uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
cache-dependency-path: '/home/runner/work/footnote/footnote/footnote-backend'
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: "Install dependencies"
working-directory: '/home/runner/work/footnote/footnote/footnote-backend'
run: npm ci
- name: "Build project"
working-directory: '/home/runner/work/footnote/footnote/footnote-backend'
run: npm run build --if-present
- name: "Run tests"
working-directory: '/home/runner/work/footnote/footnote/footnote-backend'
run: npm test
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Ignore node modules, environment variables

# root directory
node_modules/
README-mia.md

# footnote-backend directory
footnote-backend/node_modules
footnote-backend/.env
footnote-backend/config/ca-certificate.crt

5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"java.compile.nullAnalysis.mode": "automatic",
"eslint.validate": ["javascript", "typescript"],
"eslint.alwaysShowStatus": true
}
77 changes: 77 additions & 0 deletions DeveloperGuidelines.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Developer Guidelines

## How to obtain the source code

The source code of footnote can be found in its public [gitHub repository](https://github.com/miahuynhh/footnote).

## The layout of Footnote's directory structure

### frontend

```
footnote-frontend
├── public # Reusable actions, e.g., navigating, opening, creating entities
├── pages # Website pages
├── components # Reusable React components across scenes
├── hooks # Reusable React hooks
└── routes # Route definitions
```

### backend

```
footnote-backend
├── routes # All API routes
│ ├── api # API endpoints
│ └── auth # Authentication routes
├── config # Database configuration
├── services # Services (e.g., S3)
└── test # Test helpers
```

## How to build the software

First, clone the remote repository by running this command on the command line:
`git clone git@github.com:miahuynhh/footnote.git`
You should now see a local `footnote` directory. From that root `footnote` directory, run the following commands:
`npm run install-all` # to install all dependencies in the `footnote`, `footnote-backend`, and `footnote-frontend` folders
`npm run build` # to build the frontend; this command is commonly used for deployment, can skip this command during development
`npm start` # to start the backend server (on port 3000) and the frontend app (on port 5173) concurrently

## How to test the software

Ensure that all necessary packages are installed - i.e. run `npm install-all` from the root directory.
For backend testing, ensure that the proper database configurations are in place - the correct .env file in the root directory, and the ca-certificate.crt file in the config directory in the footnote-backend directory.
For backend testing - navigate to the footnote-backend directory.
For frontend testing - navigate to the footnote-frontend directory.
Ensure that the `test` folder is present within the directory, then run the following from the terminal:

```
npm test
```

## How to add new tests

Navigate to the `test` directory - either in footnote-backend or footnote-frontend - and write tests using [Mocha](https://mochajs.org/) and the default node `assert` library, either by adding to an existing file with the `.mjs` extension, or by creating a new one. For a new file, import the assertion library:

```
import * as assert from 'assert';
```

## How to build a release of the software

Run an appropriate command from the following to update the version:
`npm run version:patch` # for a patch update
`npm run version:minor` # for a minor update
`npm run version:major` # for a major update
These commands increments the version in `package.json`, commit the change, and tag the commit with the new version.

Perform sanity checks on the version update:
`npm run build` # to build the frontend to ensure it’s ready for deployment
`npm test` # to run the test suite to confirm all tests pass
`npm start` # to start the backend server (port 3000) and frontend app (port 5173) concurrently to verify they function together as expected
Also ensure that the git tag generated by the versioning command matches the intended version.

After reviewing the version update, push it to the remote repository:
`git push` # push the version update
`git push --tags` # push the version update tag
27 changes: 0 additions & 27 deletions README.md

This file was deleted.

55 changes: 55 additions & 0 deletions UserManual.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# User Manual

## A high-level description

Footnote is a tool designed to help dancers and choreographers digitally notate, visualize, and
share their routines with ease. Whether you’re a beginner or a seasoned dancer, Footnote makes it
easy to organize and document choreography in a much more efficient way than traditional methods.
Footnote's key feature allows a user to leave detailed notes on specific timestamps in their dance
video.

## How to install the software

You need an internet connection and a web browser, Chrome is recommended. There are no further system prerequisites to use Footnote.

## How to run the software

Navigate to `https://footnote.us/` to use Footnote.

## How to use the software

The initial page will be a login page where you can enter your username and password if you have an account with Footnote already. If it is your first time using Footnote, you can click the 'Click Here!' to create an account. This will direct you to a page where you can create a username and a password and confirm your password. Once your account is created, you will be directed to the login page to log into your account you jsut made.

After successfully giving your username and password, you will be directed to the projects home page. Here, you will be able to see all the different projects you have previously made displayed in a board view. If a previously made project is clicked on, it will open the project page for that project. You will also have the button to create a new projects. If the create new project button is clicked, you will be directed to a blank project page.

The project page has three main sections.

1. The top left quadrant includes the video, with the play/pause button and scrubber to move the current time in the video.
2. The botton left quadrant will include the annotation functions. This includes a text box where you can write the annotaitons for the video and the timestamp where the video is paused. There are also four buttons above the text box. This includes a plus button for creating a new annotation at the current timestamp, a pencil button to edit the currently selected annotation, a checkmark to save the current annotation at the selected timestamp, and lastly, a trash can to delete the selected annotation.
3. The right half of the screen will include a list of all of the previously made annotations in chronological order, displaying the timestamp and text for each annotation. This list will be blank when creating a new project and will populate with annotations as annotations are created and saved with the checkmark in the bottom left section of the screen.

At the intitial page when creating a new project, the annotation list on the right side and video section on the top left of the screen will be blank. The video screen on the left will have a button to upload a video, and when clicked, will take you to a pop-up screen to upload your desired dance video to annotate dance moves.

## How to report a bug

Internally, we will be using the [issues](https://github.com/miahuynhh/footnote/issues) tab in our github repository. This allows us to keep track of bugs being reported and address them right away. We can even tag people who have worked on that portion of the code. After the bug has been addressed, the issue will be closed. However, we will still have a history of bugs which helps us keep track of “known bugs” and allows us to better fix bugs that may arise in the future.

As for bug reporting, we will be following some of the tips mentioned in the bug writing guidelines from Mozilla

1. First, please describe the expected behavior (how our website should work) and the actual behavior. 

2. Indicate whether you can reproduce the bug, and if so, please outline the steps you will take.

a. Additionally, anyone who reports a bug should copy and paste the error that they are getting in the issue description. This allows people to get a bigger picture of the error and makes it easier for developers to look for solutions on their own. 

b. It would be good to note whether this occurs every time or if it is an intermittent issue. 

3. You should also indicate any steps that you have already taken, so that other developers know what to rule out. 

4. Other information to include would be type of device, operating system, and browser. 

After reporting the bug, it’s important to follow up so that this is addressed in a timely manner.

## Known bugs

We will be documenting our “known bugs” in our Readme.md file in our github repository. This will include a section called “Troubleshooting,” which will list common bugs and their behavior as well as the exact steps to fix the bug.
Loading