Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
433 commits
Select commit Hold shift + click to select a range
64f5bc9
added memberHistory to post community
DorneichI Mar 30, 2025
74788d0
added memberHistory to saveCommunity
DorneichI Mar 30, 2025
7297666
added memberHistory upd
DorneichI Mar 30, 2025
6b11751
added support for button to navigate to community statistics in the T…
DorneichI Mar 30, 2025
d65c222
added button to navigate to statistics in the TABVIEW
DorneichI Mar 30, 2025
659f75e
add line graphs
DorneichI Mar 30, 2025
c45f619
hook for the communityStatisticsPage, extracts top Questions and User…
DorneichI Mar 30, 2025
fbf6cd3
removed console log
AnshulShirude Mar 31, 2025
7e97ce8
delete and restore buttons
AnshulShirude Mar 31, 2025
e642d0a
Merge branch 'main' into deleting-messages
AnshulShirude Mar 31, 2025
e5f6258
fixed a typo
DorneichI Mar 31, 2025
a571377
few tests
AnshulShirude Mar 31, 2025
57d0302
Merge branch 'deleting-messages' of github.com:neu-cs4530/spring25-te…
AnshulShirude Mar 31, 2025
4cbfbad
typo
AnshulShirude Mar 31, 2025
ad4ef33
Merge pull request #25 from neu-cs4530/email-typo-fix
AnshulShirude Mar 31, 2025
f54fe50
Merge pull request #24 from neu-cs4530/deleting-messages
AnshulShirude Mar 31, 2025
e3bf2d2
Updated backend (mostly) and tests of question
K-maker411 Apr 1, 2025
504fa27
fixed a minor undefined error in community invites
AnshulShirude Apr 1, 2025
008a5f4
package json
AnshulShirude Apr 1, 2025
48c4f78
small dependency
AnshulShirude Apr 1, 2025
7bf7cb7
added package
AnshulShirude Apr 1, 2025
b12c122
Question service and service tests updated,
K-maker411 Apr 2, 2025
5e2ca1e
Upvotes with timestamps seem to work now (with UI)
K-maker411 Apr 3, 2025
e8275bf
Removed extra console.log() from testing question
K-maker411 Apr 3, 2025
53d5298
removed button for refreshing communities, added buttons to sort comm…
DorneichI Apr 3, 2025
b88f6a9
removed refreshCommunities hook and replaced it with a hook to getCom…
DorneichI Apr 3, 2025
bcf0176
camelcase update
AnshulShirude Apr 3, 2025
41e1238
Merge pull request #27 from neu-cs4530/comms-fix
AnshulShirude Apr 3, 2025
ca8d166
Added trending questions filter to general
K-maker411 Apr 4, 2025
67e62b6
Bulletin board sync seems to work now,
K-maker411 Apr 4, 2025
bea8377
add llm functionality and tested it to make sure it works
sumershinde22 Apr 4, 2025
4ca3b3e
small update
sumershinde22 Apr 4, 2025
0e8272b
small update
sumershinde22 Apr 4, 2025
dd9c9bc
small update
sumershinde22 Apr 4, 2025
147a3c8
small update
sumershinde22 Apr 4, 2025
b6be4d3
merging main into current branch
sumershinde22 Apr 4, 2025
8340c5b
small update
sumershinde22 Apr 4, 2025
96e6036
small update
sumershinde22 Apr 4, 2025
321df62
small update
sumershinde22 Apr 4, 2025
3a746b4
edited bell try catch
sumershinde22 Apr 4, 2025
c4c8d87
lint and made a variableName mean something
DorneichI Apr 4, 2025
441391a
Empty commit to ensure remote branch is synced with local
K-maker411 Apr 4, 2025
97cef05
small update
sumershinde22 Apr 4, 2025
14bade2
Added clarification comment to useStatisticsPage
K-maker411 Apr 4, 2025
c1e6d02
minor fix of minor stuff
DorneichI Apr 4, 2025
7fafb56
Merge pull request #30 from neu-cs4530/answer_in_app_notifications
sumershinde22 Apr 4, 2025
b8d22f5
Merge pull request #22 from neu-cs4530/llm_tagging
sumershinde22 Apr 4, 2025
9197f22
Merge pull request #28 from neu-cs4530/community-leaderboard
DorneichI Apr 4, 2025
934bfab
Minor update for pr purposes
K-maker411 Apr 4, 2025
0cd5f2a
added minimal testing
sumershinde22 Apr 4, 2025
1917fe3
small update
sumershinde22 Apr 4, 2025
36f0d2b
Merge branch 'main' into bulletin-board-sync-fix
K-maker411 Apr 4, 2025
d05e7c9
Merge branch 'main' of github.com:neu-cs4530/spring25-team-project-sp…
K-maker411 Apr 4, 2025
90fcbf8
Fixed community statistics issue, preparing for
K-maker411 Apr 4, 2025
c7c3d00
Merge pull request #31 from neu-cs4530/trending-questions-in-community
K-maker411 Apr 4, 2025
d3cf846
Merge branch 'main' of github.com:neu-cs4530/spring25-team-project-sp…
K-maker411 Apr 4, 2025
435a6ff
Merge branch 'bulletin-board-sync-fix' of github.com:neu-cs4530/sprin…
K-maker411 Apr 4, 2025
b002f6a
Potential fix for package.json issue
K-maker411 Apr 4, 2025
416a18f
Merge pull request #33 from neu-cs4530/bulletin-board-sync-fix
AnshulShirude Apr 4, 2025
bc9df81
image uploading
AnshulShirude Apr 5, 2025
33069f4
Merge branch 'main' into image-upload
AnshulShirude Apr 5, 2025
fea28e3
Merge pull request #34 from neu-cs4530/image-upload
AnshulShirude Apr 5, 2025
3e04e9e
finished testing notifications service
sumershinde22 Apr 5, 2025
17c826d
added test for notifications controller
sumershinde22 Apr 5, 2025
9b50f49
small update
sumershinde22 Apr 5, 2025
6ca8c21
merging main
sumershinde22 Apr 5, 2025
96708d6
Adding preview communities, issue where buttons'
K-maker411 Apr 5, 2025
acc8211
small update
sumershinde22 Apr 5, 2025
10a126c
Merge pull request #35 from neu-cs4530/sumer-testing
sumershinde22 Apr 5, 2025
be34344
Bulletin board page now restricted to only
K-maker411 Apr 5, 2025
cf1d874
added chakraUI
DorneichI Apr 5, 2025
e9de046
added chakraui dependency
DorneichI Apr 5, 2025
9b9b055
lint
DorneichI Apr 5, 2025
b68e18e
Merge pull request #36 from neu-cs4530/chakra-provider
DorneichI Apr 5, 2025
e27f423
update notifications to chakra
sumershinde22 Apr 5, 2025
f2c09a5
fixed issue that communities would no longer be highlighted when in t…
DorneichI Apr 5, 2025
a87bb2e
chat controller
AnshulShirude Apr 5, 2025
325859c
revamped navigation within the communities
DorneichI Apr 5, 2025
063b053
centered no notifications
sumershinde22 Apr 5, 2025
398c2cf
Conference calls within community work well,
K-maker411 Apr 5, 2025
e2efd6f
tests for email controller
AnshulShirude Apr 5, 2025
243a96b
small changes to remove lines
AnshulShirude Apr 5, 2025
644c555
Merge branch 'main' of github.com:neu-cs4530/spring25-team-project-sp…
K-maker411 Apr 5, 2025
2fd043c
now shows an error when it cant find the community
DorneichI Apr 5, 2025
1a0860e
new navbar requires means communitytabsheader is no longer necessary …
DorneichI Apr 5, 2025
076b6ed
no longer necessary with new community nav bar
DorneichI Apr 5, 2025
7990d51
forgot to add navbar to invitespage
DorneichI Apr 5, 2025
f52bd7d
Merge pull request #39 from neu-cs4530/conference-calls
AnshulShirude Apr 5, 2025
c1bccc8
Merge branch 'main' into testing
AnshulShirude Apr 5, 2025
6bf2c06
Merge pull request #38 from neu-cs4530/testing
AnshulShirude Apr 5, 2025
66d4963
merged from main
DorneichI Apr 5, 2025
c4f365b
Merge pull request #40 from neu-cs4530/communities-tabview
DorneichI Apr 5, 2025
78f9adc
Fixed auto-join issue for previews
K-maker411 Apr 5, 2025
37d8ccb
fixed bounding box overflow
sumershinde22 Apr 5, 2025
006b3b6
finished ui for notifications
sumershinde22 Apr 5, 2025
b343e7a
made ui a bit fancier
DorneichI Apr 5, 2025
b72322d
Merge branch 'main' into sumer-ui-changes
sumershinde22 Apr 5, 2025
4e4e28c
forgot two buttons
DorneichI Apr 5, 2025
f0eb055
forgot another button
DorneichI Apr 5, 2025
ba04c1a
Added condition for previewing user to not be
K-maker411 Apr 5, 2025
f4f47c9
small update
sumershinde22 Apr 5, 2025
93c391a
made the communities list page a little nicer
DorneichI Apr 5, 2025
10399c4
Removed unnecessary comment
K-maker411 Apr 5, 2025
b2259be
Merge pull request #41 from neu-cs4530/ui-profile
DorneichI Apr 5, 2025
9189d9e
Merge pull request #43 from neu-cs4530/ui-communities
DorneichI Apr 5, 2025
2e55dba
Merge pull request #37 from neu-cs4530/sumer-ui-changes
sumershinde22 Apr 5, 2025
875e720
migrated community chat to a new page
DorneichI Apr 5, 2025
ca795fc
message controller tests
AnshulShirude Apr 5, 2025
a44859d
added tests for user controller
sumershinde22 Apr 5, 2025
4a5e02f
small update
sumershinde22 Apr 5, 2025
1cfe8e8
Merge pull request #46 from neu-cs4530/message-controller-tests
AnshulShirude Apr 5, 2025
ea08241
Merge pull request #47 from neu-cs4530/testing-user-controller
sumershinde22 Apr 5, 2025
3e2cbac
Merge branch 'main' of github.com:neu-cs4530/spring25-team-project-sp…
K-maker411 Apr 5, 2025
6f8839f
Merge pull request #42 from neu-cs4530/question-links-fix
K-maker411 Apr 5, 2025
e5d896e
small update
sumershinde22 Apr 5, 2025
468d8b8
Minor fix to community preview such that the
K-maker411 Apr 5, 2025
ff90526
changed a single character
DorneichI Apr 6, 2025
43b87f8
remade pop-up with chakra-ui
DorneichI Apr 6, 2025
a2bb552
removed import of reactjs-pop-up replaced with chakra
DorneichI Apr 6, 2025
808f85c
updated questionStack
DorneichI Apr 6, 2025
29ad17a
migrated questionview to chakra
DorneichI Apr 6, 2025
3241498
added a QuestionStack to show a stack of questionViews
DorneichI Apr 6, 2025
e6c2a13
lint
DorneichI Apr 6, 2025
1b92490
Merge pull request #49 from neu-cs4530/i-am-changing-a-single-character
DorneichI Apr 6, 2025
7e07045
Merge pull request #48 from neu-cs4530/minor-community-preview-fix
K-maker411 Apr 6, 2025
b37fa36
Merge pull request #51 from neu-cs4530/ui-question-card
DorneichI Apr 6, 2025
15bd3ee
merged with main
DorneichI Apr 6, 2025
b1bb367
minor chakra stuff
DorneichI Apr 6, 2025
e2ccf83
Merge pull request #50 from neu-cs4530/ui-email-popup
DorneichI Apr 6, 2025
c1e77e7
merged with main
DorneichI Apr 6, 2025
f6c1d00
removed unnecessary hook
DorneichI Apr 6, 2025
7d305e0
lint
DorneichI Apr 6, 2025
2fb8a89
lint
DorneichI Apr 6, 2025
396edb5
reworked some ui for the navbars
DorneichI Apr 6, 2025
c57c4f7
Merge pull request #44 from neu-cs4530/communities-chat-page
DorneichI Apr 6, 2025
358b6d3
tested sort utils
sumershinde22 Apr 6, 2025
8cae5ea
made usercard chakra
DorneichI Apr 6, 2025
8469b68
created a userstack
DorneichI Apr 6, 2025
609dc2d
replaced mapping over a list of users to create user cards with user …
DorneichI Apr 6, 2025
efcb33f
updated some colors
DorneichI Apr 6, 2025
f5eddb4
spinners and headers styling
AnshulShirude Apr 6, 2025
509c9ad
Merge pull request #53 from neu-cs4530/ui-user-card
DorneichI Apr 6, 2025
0d704cc
made button chakra
DorneichI Apr 6, 2025
0112346
made header chakra
DorneichI Apr 6, 2025
1d121c6
made this chakra
DorneichI Apr 6, 2025
187b9de
finished message service test
sumershinde22 Apr 6, 2025
ae2947c
Merge pull request #54 from neu-cs4530/frontend-work
AnshulShirude Apr 6, 2025
912f12c
Merge pull request #52 from neu-cs4530/testing-user-controller
sumershinde22 Apr 6, 2025
ca4e079
Merge pull request #55 from neu-cs4530/ui-question-page-header
AnshulShirude Apr 6, 2025
33a4830
made more robust test for testing trending questions
sumershinde22 Apr 6, 2025
c31c68e
Users list search
AnshulShirude Apr 6, 2025
a948da8
small update
sumershinde22 Apr 6, 2025
4e65ba6
fixed users typing only for that community
AnshulShirude Apr 6, 2025
504b87e
Merge pull request #56 from neu-cs4530/testing-user-controller
AnshulShirude Apr 6, 2025
5524ab7
Merge pull request #57 from neu-cs4530/socket-fixes
AnshulShirude Apr 6, 2025
9dd7315
updated styling for communties
sumershinde22 Apr 6, 2025
6b24275
small edits to style community home
sumershinde22 Apr 6, 2025
c2210dc
small update
sumershinde22 Apr 6, 2025
535c79f
chat ui
AnshulShirude Apr 6, 2025
eee5604
Merge branch 'overall-styling' of github.com:neu-cs4530/spring25-team…
AnshulShirude Apr 6, 2025
ec325f4
Merge pull request #58 from neu-cs4530/overall-styling
AnshulShirude Apr 6, 2025
c53d278
changed fake to community
DorneichI Apr 6, 2025
68efb30
ui change to statistics page
DorneichI Apr 6, 2025
b718821
Community service tests completed with full
K-maker411 Apr 6, 2025
27f717c
Finished community service tests, with minor
K-maker411 Apr 6, 2025
99498f9
Merge branch 'main' of github.com:neu-cs4530/spring25-team-project-sp…
K-maker411 Apr 6, 2025
b010eb2
Merged main into local and updated community
K-maker411 Apr 6, 2025
0e67c07
fixed community sort by saved filter
DorneichI Apr 6, 2025
b522751
lint
DorneichI Apr 6, 2025
c8cdb71
Removed unnecessary comments
K-maker411 Apr 6, 2025
f76fddc
Merge pull request #59 from neu-cs4530/ui-statistics
AnshulShirude Apr 7, 2025
8c0ec64
added badges
DorneichI Apr 7, 2025
872ae70
cleaned up two buttons
DorneichI Apr 7, 2025
2ad06bc
squeezed in some ui changes for the invites page
DorneichI Apr 7, 2025
0ba43ca
lint
DorneichI Apr 7, 2025
09b40d5
added timeout for the spinner
AnshulShirude Apr 7, 2025
d66c864
Merge pull request #63 from neu-cs4530/timeout
DorneichI Apr 7, 2025
c11d454
Merge pull request #60 from neu-cs4530/community-sort-by-saved-fix
AnshulShirude Apr 7, 2025
5ac688f
minor fix
DorneichI Apr 7, 2025
8746a13
linting
AnshulShirude Apr 7, 2025
d57d615
Merge pull request #62 from neu-cs4530/community-badges
AnshulShirude Apr 7, 2025
d35b9cc
minor fixes to sockets for only seeing that one person
AnshulShirude Apr 7, 2025
a0a33a8
Merge pull request #64 from neu-cs4530/sockets
AnshulShirude Apr 7, 2025
b3bf761
updated llm
sumershinde22 Apr 8, 2025
6df2bb5
small update
sumershinde22 Apr 8, 2025
e8568cd
small update
sumershinde22 Apr 8, 2025
b50fab4
small update
sumershinde22 Apr 8, 2025
2e99b4f
Merge pull request #65 from neu-cs4530/llm-fix
sumershinde22 Apr 8, 2025
71f5396
fixed llm tests
sumershinde22 Apr 8, 2025
ca80981
set llm to run at midnight
sumershinde22 Apr 8, 2025
867f519
removed console logs
sumershinde22 Apr 8, 2025
261e96e
Merge pull request #66 from neu-cs4530/llm-fix
sumershinde22 Apr 8, 2025
9f707fb
Hitting some memory leaks on community controller
K-maker411 Apr 8, 2025
a00dad1
Fixed memory leak in community controller tests
K-maker411 Apr 8, 2025
8067f10
fixed markdown by adding custom css
sumershinde22 Apr 8, 2025
2359e27
changed button to chakra
DorneichI Apr 8, 2025
183fd84
formal fix
DorneichI Apr 8, 2025
88fee6c
removed comments
sumershinde22 Apr 8, 2025
2fbad12
added some spacing
DorneichI Apr 8, 2025
1f1196b
made chakra
DorneichI Apr 8, 2025
ccbff4c
made chakra
DorneichI Apr 8, 2025
d929c9d
made chakra
DorneichI Apr 8, 2025
790b765
made button chakra
DorneichI Apr 8, 2025
91daf12
made buttons chakra
DorneichI Apr 8, 2025
14081e5
added some spacing
DorneichI Apr 8, 2025
c700e0d
changed border to main page
DorneichI Apr 8, 2025
9e8151f
changed some spacing
DorneichI Apr 8, 2025
52d0065
made button chakra
DorneichI Apr 8, 2025
4591e94
Merge pull request #67 from neu-cs4530/fix-markdown
sumershinde22 Apr 8, 2025
ab7daaf
fixed an issue where 0 was showing up when the was no badge for conte…
DorneichI Apr 8, 2025
23ccce4
merged with main
DorneichI Apr 8, 2025
47d61af
lint
DorneichI Apr 8, 2025
9f564ed
title size
DorneichI Apr 8, 2025
6c45d6b
changed fakeso to community overflow
DorneichI Apr 8, 2025
9fbf5b5
changed the displayed name of the site
DorneichI Apr 8, 2025
512bca9
changed the icon
DorneichI Apr 8, 2025
24691a1
changed call ended ui
DorneichI Apr 8, 2025
e61e0f0
needed to update email test to community overflow
DorneichI Apr 8, 2025
c05c53f
Merge pull request #68 from neu-cs4530/minor-fixes
DorneichI Apr 8, 2025
aa1908e
fixed an error with badges
DorneichI Apr 8, 2025
33f0372
made button chakra
DorneichI Apr 8, 2025
94993fc
images are not sent globally
AnshulShirude Apr 8, 2025
e8178cc
Merge pull request #70 from neu-cs4530/global-chat-fix
AnshulShirude Apr 8, 2025
2fcba68
reversed the chat so that new messages get pushed to the top
DorneichI Apr 8, 2025
34fce8d
Merge pull request #69 from neu-cs4530/minor-fixes
DorneichI Apr 8, 2025
b61f12d
Intermediate test progress, changed some
K-maker411 Apr 9, 2025
1e391fa
Removed unnecessary comment from community
K-maker411 Apr 9, 2025
18859c3
changed button size
DorneichI Apr 9, 2025
00c0b60
Previews fixed by adding query parameter, adding
K-maker411 Apr 9, 2025
fd194dd
Added reduced question-asking ability for
K-maker411 Apr 9, 2025
4f4aa9e
added tests for community, question, database utils
sumershinde22 Apr 9, 2025
a44fb14
removed comments
sumershinde22 Apr 9, 2025
f2ffb5c
Merge pull request #71 from neu-cs4530/minor-fixes
AnshulShirude Apr 9, 2025
b9c3daa
Merge pull request #61 from neu-cs4530/community-service-tests
AnshulShirude Apr 9, 2025
9792949
javadoc controller
AnshulShirude Apr 9, 2025
a832e64
added jsdoc
sumershinde22 Apr 9, 2025
9bd40bb
Merge branch 'main' into community-service-tests
sumershinde22 Apr 9, 2025
5c5f165
Merge pull request #73 from neu-cs4530/javadoc
AnshulShirude Apr 9, 2025
89d776c
Merge pull request #72 from neu-cs4530/community-service-tests
sumershinde22 Apr 9, 2025
4e33e0a
Merge branch 'main' of github.com:neu-cs4530/spring25-team-project-sp…
K-maker411 Apr 9, 2025
c733c5a
Updated packages
K-maker411 Apr 9, 2025
92b24be
Removed unnecessary comments
K-maker411 Apr 9, 2025
febb439
Merge pull request #74 from neu-cs4530/fix-community-preview
K-maker411 Apr 9, 2025
557e07b
Fixed message ordering in community chat
K-maker411 Apr 9, 2025
b2e63cc
Merge pull request #75 from neu-cs4530/minor-message-order-fix
K-maker411 Apr 9, 2025
4770a80
just changed header names
sumershinde22 Apr 9, 2025
9174dcc
Merge pull request #76 from neu-cs4530/small-stats-fix
AnshulShirude Apr 9, 2025
bfaaab1
fixed rename issue
sumershinde22 Apr 9, 2025
4c6832d
Merge pull request #77 from neu-cs4530/small-stats-fix
AnshulShirude Apr 9, 2025
7e15f66
Update README.md
AnshulShirude Apr 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
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"jest.rootPath": "./server",
"jest.jestCommandLine": "npx jest",
"jest.runMode": "on-demand"
"jest.runMode": "on-demand",
"postman.settings.dotenv-detection-notification-visibility": false
}
103 changes: 103 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[![Review Assignment Due Date](https://classroom.github.com/assets/deadline-readme-button-22041afd0340ce965d47ae6ef1cefeee28c7c493a6346c4f15d667ab976d596c.svg)](https://classroom.github.com/a/fE-a_qEp)
The individual and team project for this class are designed to mirror the experiences of a software engineer joining a new development team: you will be “onboarded” to our codebase, make several individual contributions, and then form a team to propose, develop and implement new features. The codebase that we’ll be developing on is a Fake Stack Overflow project (let’s call it HuskyFlow). You will get an opportunity to work with the starter code which provides basic skeleton for the app and then additional features will be proposed and implemented by you! All implementation will take place in the TypeScript programming language, using React for the user interface.

## Getting Started
Expand Down Expand Up @@ -101,3 +102,105 @@ npm run stryker
```sh
node --max-old-space-size=4096 ./node_modules/.bin/stryker run
```

# Community Overflow
---

## 🛠️ Local Setup Instructions

### 1. Clone the Repository

```bash
git clone https://github.com/neu-cs4530/spring25-team-project-spring25-project-group-212
cd spring25-team-project-spring25-project-group-212
```

### 2. Install Dependencies

Run the following in the root, `client`, and `server` directories:

```bash
npm install
```

### 3. Environment Variables

#### In the `client` directory, create a `.env` file with:

```
REACT_APP_SERVER_URL=http://localhost:8000
```

#### In the `server` directory, create a `.env` file with:

```
MONGODB_URI=mongodb://127.0.0.1:27017
CLIENT_URL=http://localhost:3000
PORT=8000
GEMINI_API_KEY={Add your gemini api key here}
```

To get a Gemini API key, follow the instructions here: [https://aistudio.google.com/welcome](https://aistudio.google.com/welcome)

---

## ☁️ Using Your Own MongoDB Database

1. Create a new cluster on [MongoDB Atlas](https://www.mongodb.com/cloud/atlas).
2. In **Network Access**, allow access from anywhere.
3. Connect to your cluster; it should open in MongoDB Compass.
4. Populate the database:

```bash
cd server
npx ts-node populate_db.ts <your_connection_string>/fake_so
```

---

## 🚀 Deploying to Render

### Server Setup

1. Go to the [Render Dashboard](https://dashboard.render.com/) and create a **new Web Service**.
2. Select the GitHub project.
3. Choose:
- **Language**: Node
- **Branch**: `main`
- **Root Directory**: `server`
- **Build Command**: `cd ..; npm install; npm run build --workspace=server`
- **Start Command**: `npm run start:prod`
4. Add an environment variable:

```
MONGODB_URI = <your MongoDB connection string>
```

5. Deploy the service.

### Client Setup

1. Create a **new Static Site** on Render.
2. Select the GitHub project.
3. Choose:
- **Branch**: `main`
- **Root Directory**: `client`
- **Build Command**: `cd ..; npm install; npm run build --workspace=shared; npm run build --workspace=client`
- **Publish Directory**: `build`
4. Add environment variables:

```
REACT_APP_SERVER_URL = <your deployed server URL>
CLIENT_URL = <your deployed client URL>
```

5. Add a **"Rewrite" action**:

```
Source: /*
Destination: /index.html
```

6. Save and deploy the site.

---
4 changes: 4 additions & 0 deletions client/globals.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
declare module '*.wav' {
const src: string;
export default src;
}
20 changes: 18 additions & 2 deletions client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,31 @@
"version": "0.1.0",
"private": true,
"dependencies": {
"@chakra-ui/react": "^3.15.0",
"@chakra-ui/theme-tools": "^2.2.6",
"@cypress/instrument-cra": "^1.4.0",
"@fake-stack-overflow/shared": "^1.0.0",
"axios": "^1.7.9",
"@jitsi/react-sdk": "^1.4.4",
"@tldraw/sync": "^3.11.0",
"axios": "^1.8.4",
"chart.js": "^4.4.8",
"date-fns": "^4.1.0",
"emoji-picker-react": "^4.12.2",
"highlight.js": "^11.11.1",
"mongodb": "6.12.0",
"next-themes": "^0.4.6",
"react": "^18.3.1",
"react-chartjs-2": "^5.3.0",
"react-dom": "^18.3.1",
"react-icons": "^5.5.0",
"react-markdown": "^10.1.0",
"react-router-dom": "^6.28.1",
"react-scripts": "5.0.1",
"socket.io-client": "^4.8.1"
"react-uploader": "^3.43.0",
"rehype-highlight": "^7.0.2",
"socket.io-client": "^4.8.1",
"tldraw": "^3.10.3",
"uploader": "^3.48.3"
},
"scripts": {
"start": "react-scripts -r @cypress/instrument-cra start",
Expand Down
Binary file modified client/public/favicon.ico
Binary file not shown.
2 changes: 1 addition & 1 deletion client/public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>React App</title>
<title>Community Overflow</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
Expand Down
Binary file added client/src/assets/bells.wav
Binary file not shown.
2 changes: 1 addition & 1 deletion client/src/components/auth/login/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ const Login = () => {

return (
<div className='container'>
<h2>Welcome to FakeStackOverflow!</h2>
<h2>Welcome to Community Overflow!</h2>
<h3>Please login to continue.</h3>
<form onSubmit={handleSubmit}>
<h4>Please enter your username.</h4>
Expand Down
2 changes: 1 addition & 1 deletion client/src/components/auth/signup/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ const Signup = () => {

return (
<div className='container'>
<h2>Sign up for FakeStackOverflow!</h2>
<h2>Sign up for Community Overflow!</h2>
<form onSubmit={handleSubmit}>
<h4>Please enter your username.</h4>
<input
Expand Down
21 changes: 21 additions & 0 deletions client/src/components/fakestackoverflow.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,16 @@ import UsersListPage from './main/usersListPage';
import ProfileSettings from './profileSettings';
import AllGamesPage from './main/games/allGamesPage';
import GamePage from './main/games/gamePage';
import NewCommunityPage from './main/newCommunity';
import CommunityPage from './main/communityPage';
import NewQuestionInCommunityPage from './main/communityPage/newQuestionInCommunity';
import CommunitiesListPage from './main/communitiesListPage';
import StatisticsPage from './main/statisticsPage';
import BulletinBoardPage from './main/communityPage/bulletinBoardPage';
import UserCommunityInvitesPage from './profileSettings/userCommunityInvitesPage';
import CommunityInvitesPage from './main/communityPage/communityInvitesPage';
import CommunityStatisticsPage from './main/communityPage/communityStatistics';
import CommunityChat from './main/communityPage/communityChat';

const ProtectedRoute = ({
user,
Expand Down Expand Up @@ -66,6 +76,17 @@ const FakeStackOverflow = ({ socket }: { socket: FakeSOSocket | null }) => {
<Route path='/user/:username' element={<ProfileSettings />} />
<Route path='/games' element={<AllGamesPage />} />
<Route path='/games/:gameID' element={<GamePage />} />
<Route path='/new/community' element={<NewCommunityPage />} />
<Route path='/community/:id' element={<CommunityPage />} />
<Route path='/new/questionInCommunity/:id' element={<NewQuestionInCommunityPage />} />
<Route path='/community' element={<Navigate to='/community/list' replace />} />
<Route path='/community/list' element={<CommunitiesListPage />} />
<Route path='/statistics' element={<StatisticsPage />} />
<Route path='/community/:id/bulletinBoard' element={<BulletinBoardPage />} />
<Route path='/user/:username/communityInvites' element={<UserCommunityInvitesPage />} />
<Route path='/community/:id/invites' element={<CommunityInvitesPage />} />
<Route path='/community/:id/statistics' element={<CommunityStatisticsPage />} />
<Route path='/community/:id/chat' element={<CommunityChat />} />
</Route>
}
</Routes>
Expand Down
2 changes: 1 addition & 1 deletion client/src/components/header/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@

.view-profile-button:active {
background-color: #003f7f;
}
}
49 changes: 28 additions & 21 deletions client/src/components/header/index.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import React from 'react';
import { useNavigate } from 'react-router-dom';
import { Flex, Box, Text, Spacer, Button } from '@chakra-ui/react';
import { FiLogOut, FiUser } from 'react-icons/fi';
import useHeader from '../../hooks/useHeader';
import './index.css';
import useUserContext from '../../hooks/useUserContext';
Expand All @@ -10,30 +12,35 @@ import useUserContext from '../../hooks/useUserContext';
* when they press Enter.
*/
const Header = () => {
const { val, handleInputChange, handleKeyDown, handleSignOut } = useHeader();
const { handleSignOut } = useHeader();
const { user: currentUser } = useUserContext();
const navigate = useNavigate();

return (
<div id='header' className='header'>
<div></div>
<div className='title'>Fake Stack Overflow</div>
<input
id='searchBar'
placeholder='Search ...'
type='text'
value={val}
onChange={handleInputChange}
onKeyDown={handleKeyDown}
/>
<button onClick={handleSignOut} className='logout-button'>
Log out
</button>
<button
className='view-profile-button'
onClick={() => navigate(`/user/${currentUser.username}`)}>
View Profile
</button>
</div>
<Flex id='header' className='header' align='center' px={4} py={2}>
<Box>
<Text fontSize='3xl' fontWeight='bold'>
Community Overflow
</Text>
</Box>
<Spacer />
<Flex gap={2}>
<Button
aria-label='View Profile'
onClick={() => navigate(`/user/${currentUser.username}`)}
variant='ghost'
colorScheme='whiteAlpha'>
<FiUser />
</Button>
<Button
aria-label='Log Out'
onClick={handleSignOut}
variant='ghost'
colorScheme='whiteAlpha'>
<FiLogOut />
</Button>
</Flex>
</Flex>
);
};

Expand Down
10 changes: 10 additions & 0 deletions client/src/components/layout/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,22 @@
padding: 2% 0 2% 2%;
}

.right_bottom_padding {
padding: 2% 0 1% 2%;
}

.bold_title {
font-size: 24px;
font-weight: 800;
line-height: 40px;
}

.not_quite_so_bold_title {
font-size: 18px;
font-weight: 600;
line-height: 30px;
}

.bluebtn {
background: #3090e2;
color: #ffffff;
Expand Down
Loading