Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
286920a
hosted backend and URL update
adityapai18 Mar 6, 2025
d098ec8
bug fix backend URL
adityapai18 Mar 11, 2025
ca67c78
Implemented Reusable componets of Heat-Grid
Raj-mac24 Mar 12, 2025
db00382
Show anonymized review headers for students and actual names for others
ParthK7 Mar 15, 2025
1af79d7
Changed toggleQuestion checkbox to make it a dynamic link
ParthK7 Mar 21, 2025
24cba7f
Added color and interaction legend which is has hovering enabled.
ParthK7 Mar 23, 2025
bdf8f03
feat: word count for reviews
adityapai18 Mar 24, 2025
45c99b2
issue 7 from wiki
adityapai18 Mar 25, 2025
17b90ab
added button and fixes
adityapai18 Mar 25, 2025
7432152
final push
adityapai18 Mar 25, 2025
e5a4842
tests added
adityapai18 Mar 25, 2025
9b319df
backend integration remaining
adityapai18 Apr 14, 2025
9cf65d2
Initial UI for Assign Grades page (data hardcoded)
ParthK7 Apr 15, 2025
24cb1ad
:sparkles: feat: API integration for view submissions page and UI cha…
adityapai18 Apr 17, 2025
4ec8360
Test-cases Added
Raj-mac24 Apr 18, 2025
de7bce3
Updated AssignGrades UI and fetched team names correctly
ParthK7 Apr 19, 2025
3c2f0b6
Styling added
ParthK7 Apr 19, 2025
15a860f
Dummy data added for reviews
ParthK7 Apr 20, 2025
8bffc4a
review api added
adityapai18 Apr 21, 2025
44366d4
added topic name in submissions table
adityapai18 Apr 21, 2025
a2bc5e5
View Submission UI Changes
Raj-mac24 Apr 21, 2025
cc12d5d
Heatgrid implemented in AssignGrade page
ParthK7 Apr 22, 2025
1133809
added API and integrated for heat grid
adityapai18 Apr 22, 2025
37760be
fix: bug for no reviews from api handled
adityapai18 Apr 22, 2025
ef74c2d
Updated UI for AssignGrade.tsx
ParthK7 Apr 22, 2025
91a01d5
Penalty field added to submission form
ParthK7 Apr 22, 2025
c3bfce5
minor UI change to AssignGrade
ParthK7 Apr 22, 2025
077fe79
Name changed for 10 and 20 words comments for heatgrid
ParthK7 Apr 23, 2025
50ee2bd
Updated Test-cases
Raj-mac24 Apr 23, 2025
0c2a1d0
Updated Test-Cases
Raj-mac24 Apr 23, 2025
80010c9
UI for view submission
adityapai18 Apr 23, 2025
9e59a8c
UI for view submission
adityapai18 Apr 23, 2025
cce26f2
:sparkles: done and dusted
adityapai18 Apr 23, 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
1 change: 1 addition & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
REACT_APP_BASE_URL = "http://152.7.177.242:3002"
91 changes: 65 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,85 @@
# Getting Started with Create React App
# Reimplementation Front-End

This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
This project is a front-end implementation for the Reimplementation system.

## Available Scripts
## Getting Started

In the project directory, you can run:
### Prerequisites

### `npm start`
- Node.js (v14 or higher)
- npm or yarn

Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
### Installation

The page will reload if you make edits.\
You will also see any lint errors in the console.
1. Clone the repository
2. Install dependencies:
```
npm install
```
or
```
yarn install
```

### `npm test`
### Running the Application

Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
To start the development server:

### `npm run build`
```
npm start
```
or
```
yarn start
```

Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.
The application will be available at http://localhost:3000.

The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!
## Testing

See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
### Running Tests

### `npm run eject`
To run the tests:

**Note: this is a one-way operation. Once you `eject`, you can’t go back!**
```
npm test
```
or
```
yarn test
```

If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
This will run the tests in watch mode. Press `q` to quit.

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
### Test Structure

You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
The tests are organized as follows:

## Learn More
- Unit tests for components are located in `src/pages/Assignments/__tests__/`
- Test setup is in `src/setupTests.ts`

You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
## Features

To learn React, check out the [React documentation](https://reactjs.org/).
### View Submissions Page

- Displays a list of teams with their associated details
- Shows team names, team members, and resource links
- Provides interactive links for actions such as "Assign Grade" and "History"
- Responsive design for accessibility across devices

### Assign Grades Page

- Displays the selected team's details, submission summary, and peer review scores
- Provides input fields for grades and comments
- Includes a "Submit" button for finalizing grades
- Highlights missing reviews
- Prevents grade submission without completing required fields

## Backend Integration

The front-end integrates with the reimplementation backend to:

- Fetch and display assignment data
- Retrieve team member details
- Access historical records
- Submit grades and comments
67 changes: 67 additions & 0 deletions TESTING_CHECKLIST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Manual Testing Checklist

## View Submissions Page

### UI Elements
- [ ] Page title displays correctly
- [ ] Table is properly formatted and not too wide
- [ ] Team names are clearly visible
- [ ] Team member links are clickable and styled correctly
- [ ] Action links (Assign Grade, History) are visible and properly styled
- [ ] Table is responsive on different screen sizes

### Navigation
- [ ] Clicking on "Assign Grade" navigates to the Assign Grade page
- [ ] Clicking on "History" navigates to the History page
- [ ] Clicking on team member names navigates to their profile pages

### Data Display
- [ ] All teams are displayed correctly
- [ ] Team member information is accurate
- [ ] No missing or incorrect data

## Assign Grade Page

### UI Elements
- [ ] Assignment name and team name are displayed correctly
- [ ] Submission summary is visible and readable
- [ ] Peer review scores are displayed in a table
- [ ] Grade input field is present and properly labeled
- [ ] Comment textarea is present and properly labeled
- [ ] Submit button is present and properly labeled

### Form Validation
- [ ] Submit button is disabled when form is empty
- [ ] Submit button is enabled when both grade and comment are filled
- [ ] Form submission works correctly
- [ ] Appropriate feedback is shown after submission

### Data Display
- [ ] Assignment details are accurate
- [ ] Team information is correct
- [ ] Peer review scores are displayed correctly
- [ ] Missing reviews are highlighted (if applicable)

## Cross-Browser Testing
- [ ] Page renders correctly in Chrome
- [ ] Page renders correctly in Firefox
- [ ] Page renders correctly in Safari
- [ ] Page renders correctly in Edge

## Responsive Design
- [ ] Page is usable on desktop (1920x1080)
- [ ] Page is usable on laptop (1366x768)
- [ ] Page is usable on tablet (768x1024)
- [ ] Page is usable on mobile (375x667)

## Accessibility
- [ ] All interactive elements are keyboard accessible
- [ ] Color contrast meets WCAG standards
- [ ] Screen readers can navigate the page
- [ ] Form labels are properly associated with inputs

## Performance
- [ ] Page loads quickly
- [ ] No unnecessary re-renders
- [ ] Smooth transitions between pages
- [ ] No lag when interacting with the UI
8 changes: 8 additions & 0 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
module.exports = {
presets: [
'@babel/preset-env',
'@babel/preset-react',
'@babel/preset-typescript'
]
};

38 changes: 38 additions & 0 deletions jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
module.exports = {
transform: {
'^.+\\.(ts|tsx)$': 'babel-jest'
},
transformIgnorePatterns: [
"/node_modules/(?!(axios)/)" // transform axios ESM
],
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
testEnvironment: 'jsdom'
};
module.exports = {
preset: 'ts-jest',
testEnvironment: 'jsdom',
moduleNameMapper: {
'^components/(.*)$': '<rootDir>/src/components/$1',
'^utils/(.*)$': '<rootDir>/src/utils/$1',
'\\.(css|less|scss|sass)$': 'identity-obj-proxy'
},
transformIgnorePatterns: [
'/node_modules/(?!axios|@tanstack)/',
],
setupFilesAfterEnv: [
'<rootDir>/src/setupTests.ts'
],
moduleDirectories: ['node_modules', 'src'],
testMatch: [
'<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}',
'<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}'
],
transform: {
'^.+\\.(ts|tsx|js|jsx)$': 'ts-jest'
},
globals: {
'ts-jest': {
tsconfig: 'tsconfig.json'
}
}
};
Loading