Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
52be3c1
wording fix in readme
atparsec Sep 10, 2025
f0cebd0
Header debranding
Marrufof Sep 11, 2025
af1ab83
debranded the footer and added a uiConfig.js.
Rtyujklop Sep 11, 2025
34880ab
Changed Header
Marrufof Sep 12, 2025
855cff7
changed the sql test data, updating to 4 content areas
Marrufof Sep 16, 2025
2be69eb
Updated README
Marrufof Sep 17, 2025
2672261
added admin test cases for content editor.
Rtyujklop Sep 18, 2025
6e36980
Merge branch 'debranding' of https://github.com/RIT-Software-Engineer…
Rtyujklop Sep 18, 2025
b886bdf
made stacktraceerrorpage.js read uiconfig version number.
Rtyujklop Sep 19, 2025
5c1a343
Editable Footer
Marrufof Sep 19, 2025
f5ba6db
Merge branch 'debranding' of https://github.com/RIT-Software-Engineer…
Marrufof Sep 19, 2025
c172829
removed comments
Marrufof Sep 26, 2025
95ad34a
Made version number uneditable
Marrufof Sep 26, 2025
b6196eb
Refactor modals: added ModalWrapper and SubmissionViewerModal content…
Rtyujklop Sep 30, 2025
97b04b6
made ModelWrapper more flexible and integrated it into SubmissionView…
Rtyujklop Oct 1, 2025
e46495d
added IndividualTimeModalContent and use ModalWrapper for student log…
Rtyujklop Oct 2, 2025
6b349d1
Center all modals and fixed modal layout
Rtyujklop Oct 13, 2025
188c7f3
added profile modal refactor content
Rtyujklop Oct 14, 2025
dfe780e
did more work on project viewer modal.
Rtyujklop Oct 16, 2025
b8f8488
the scrolling is back to the right of the screen for view action
Rtyujklop Oct 17, 2025
7cc2353
scroll is fixed for submission viewer.
Rtyujklop Oct 19, 2025
b9e008d
demo update i just made action modal normal and made sure everything …
Rtyujklop Oct 22, 2025
fba52fc
added x's to all modals i seen
Rtyujklop Oct 27, 2025
8e7424d
conformation modal is going well
Rtyujklop Nov 12, 2025
2b8dacf
made adjustments toward radio button with the are u sure modal.
Rtyujklop Nov 14, 2025
1fa7d2b
allow modal click off and radio buttons work with confirmation modal.
Rtyujklop Nov 21, 2025
bd8beb7
fixed the confirmation modal and major bugs.
Rtyujklop Dec 2, 2025
e77f2b9
made dark mode confirm modal x look better.
Rtyujklop Dec 3, 2025
003c10a
made profile modal look like the sandbox one.
Rtyujklop Dec 10, 2025
00c0dc6
minimum width constraints got added.
Rtyujklop Dec 12, 2025
03ad13a
fixed the layout of confirmation modal.
Rtyujklop Dec 14, 2025
6c70afa
made changes based on pr
Rtyujklop Dec 16, 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
17 changes: 16 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ _**On first login, new user must change password by using the `passwd` command**

- ### Using Local Setup
- Run `install.ps1` (recommended) or `install.bat` (legacy) or `install.sh` (on linux) to get dependencies set up locally
- `install.ps1` supports performing a clean installation by using the `-CleanInstall` flag. Use this if you encounter a `npm install` failure. Caution: Ensure you have commited/pushed any important changes before running this command.
- `install.ps1` supports performing a clean installation by using the `-CleanInstall` flag. Use this if you encounter a `npm install` failure. **Caution:** Ensure you have commited/pushed any important changes before running this command with the `-CleanInstall` flag.
- `install.ps1` also supports skipping initializing the server or the ui, using the `-SkipServer` and `-SkipUI` flags.
- You will need to manually install the Prettier extension on your IDE ([for VSCode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)) ([for IntelliJ](https://plugins.jetbrains.com/plugin/10456-prettier)).

Expand Down Expand Up @@ -87,3 +87,18 @@ After sshing into the server, cd into either prod or test project. Then run resp
## Backend Documentation

[Swagger Link](https://petstore.swagger.io/?url=https%3A%2F%2Fraw.githubusercontent.com%2FRIT-Software-Engineering%2FRIT-SE-Senior-Project%2Frefs%2Fheads%2Fdev%2Fui%2Fpublic%2Fapi-docs%2Fserver_doc.yaml)

## Content Editor

The site includes a Content Editor that allows administrators to edit HTML fragments stored in the database. These fragments are used to render portions of the site such as the homepage panel, sponsor information, and the logged-in/logged-out footers.

### Accessing the Content Editor
- Log into the site with an account that has admin privileges.
- Navigate to the Admin Tab -> Content Editor -> Page Editor

### Editing Content
- The editor displays a list of named HTML blocks (e.g., `homePagePanel`, `sponsor`, `loggedInFooter`, `loggedOutFooter`).
- Select the block you want to edit. The existing HTML will be displayed in a text box.
- Make your changes directly in the editor.
- Click **Update HTML** to save your changes. The update is written directly into the database.
- Refresh the site to see your changes in action.
43 changes: 42 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
},
"dependencies": {
"ajv": "^8.17.1",
"html-to-text": "^9.0.5"
"html-to-text": "^9.0.5",
"react-confirm-alert": "^3.0.6"
}
}
Empty file added senior_projects.db
Empty file.
58 changes: 53 additions & 5 deletions server/server/database/test_data/page_html_dummy.sql
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
INSERT INTO page_html (name, html) VALUES
('homePagePanel', '<div class="row">
INSERT INTO
page_html (name, html)
VALUES
(
'homePagePanel',
'<div class="row">
<h2>Overview</h2>
</div>
<div class="row">
Expand All @@ -15,8 +19,11 @@ INSERT INTO page_html (name, html) VALUES
inception through an entire software development lifecycle. The end result is a functional software
tool ready for use by the sponsor''s organization.
</p>
</div>'),
('sponsor', '<div class="row">
</div>'
),
(
'sponsor',
'<div class="row">
<h2 class="ui header">Become a Project Sponsor</h2>
</div>
<div class="row">
Expand Down Expand Up @@ -213,4 +220,45 @@ INSERT INTO page_html (name, html) VALUES
</ol>
</div>
</div>
</div>');
</div>'
),
(
'loggedOutFooter',
"<div id='bringMeDownSignedIn' class='ui container stackable grid'>
<div class='three column row'>
<div class='column'>
<img src='/assets/logo.jpg' alt='Logo' style='max-width:200px; width:100%; height:auto;' />
</div>
<div class='column'>
<p>
Department of Software Engineering<br/>
Golisano Building 70, Room 1690<br/>
134 Lomb Memorial Drive<br/>
Rochester, NY 14623-5608
</p>
</div>
<div class='column'>
<p>
<i class='ui mail icon'></i>
<a href='mailto:[email protected]'>[email protected]</a>
</p>
</div>
</div>
<div class='centered row' style='text-align:center;'>
<p>&copy; " || strftime('%Y','now') || " Rochester Institute of Technology, All Rights Reserved</p>
</div>
</div>"
),
(
'loggedInFooter',
"<div id='bringMeDown' class='ui container stackable grid'>
<div class='two column row'>
<div class='column'>
<h5 id='copyright'>
<i class='ui icon copyright'></i>
" || strftime('%Y','now') || " Rochester Institute of Technology, All Rights Reserved
</h5>
</div>
</div>
</div>"
);
10 changes: 9 additions & 1 deletion test_cases/admin.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,5 +120,13 @@
5. Upon successful updating of the HTMLs a little “Success!” should appear just above the “Update HTML” button
![Content Editor 5](images/contenteditor5.png)

6. To view these changes simply sign out of admin by using the developer sign in menu in the top right or press on the RIT logo in the top left. The UI routing should remain the same and the changes made to the HTML should be visible immediately.
6. To view these changes simply sign out of admin by using the developer sign in menu in the top right or press on the RIT logo in the top left. The UI routing should remain the same and the changes made to the HTML should be visible immediately after refreshing.
![Content Editor 6](images/contenteditor6.png)

7. In addtion to the overview and project sponser sections, Content editor includes two other editable sections: "loggedOutFooter" and "loggedInFooter".
![Content Editor 7](images/contenteditor7.png)

8. Just like with the Overview and Sponsor sections, you can edit the "loggedOutFooter"
and "loggedInFooter" HTML directly. After making your changes, click "Update HTML"
and check the footer on the corresponding page (signed in vs. signed out) to confirm
the updates appear.
Binary file added test_cases/images/contenteditor7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ui/public/assets/logo-dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ui/public/assets/logo-light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ui/public/assets/logo.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ export default function WeeklyHoursViewer(props) {
<Modal
closeOnDimmerClick={false}
className={"sticky"}
closeIcon={true}
onClose={() => {
setOpen(false);
props?.isOpenCallback(false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ function UniqueProjectPage({ projectData }) {
<Modal
closeOnDocumentClick={false}
className={"sticky"}
closeIcon={true}
size={"large"}
open={posterOpen}
onClose={() => setPosterOpen(false)}
Expand Down Expand Up @@ -167,6 +168,7 @@ function UniqueProjectPage({ projectData }) {
<Modal
closeOnDimmerClick={false}
className={"sticky"}
closeIcon={true}
size={"large"}
open={imageOpen}
onClose={() => setImageOpen(false)}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@ export default function FileEditor() {
closeOnDimmerClick={false}
closeOnEscape={false}
className={"sticky"}
closeIcon={true}
open={addFileOpen}
onClose={() => setAddFileOpen(false)}
onOpen={() => setAddFileOpen(true)}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ export default function BatchUserPanel({ callback }) {
return (
<Modal
className={"sticky"}
closeIcon={true}
trigger={<Button icon="upload" />}
header="Upload users (Untested for large number of users)"
content={{ content: modalContent, scrolling: true }}
Expand Down
1 change: 1 addition & 0 deletions ui/src/components/Tabs/CoachesTab/ViewProjectMembers.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ export default function ViewProjectMembers(props) {
<Modal
closeOnDimmerClick={false}
className={"sticky"}
closeIcon={true}
trigger={
<Button onClick={fetchProjectCoaches} icon={<Icon name="eye" />} />
}
Expand Down
Loading