Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
272 commits
Select commit Hold shift + click to select a range
08277b7
Added pseudocode and empty functions for groupController
NotYourAlejandro Oct 24, 2024
1540f97
Refactor groupController.js and groupRoutes.js
NotYourAlejandro Oct 25, 2024
17f8a7f
Refactor groupController.js and groupRoutes.js
NotYourAlejandro Oct 25, 2024
0f1c4b5
Refactor groupController.js and groupRoutes.js
NotYourAlejandro Oct 25, 2024
e4b1e98
Added components GroupChatModule and TextRegion. Made styleistic chan…
JLealos Oct 25, 2024
e34ddae
Merge branch 'dev_frontend' of https://github.com/jadynlaila/Study_Gr…
JLealos Oct 25, 2024
9ca8fa6
Something with HTTP reqs isn't working
NotYourAlejandro Oct 26, 2024
6d31121
im in pain
NotYourAlejandro Oct 26, 2024
7bfeb25
Fixed pre-branch bugs
NotYourAlejandro Oct 26, 2024
36686f7
send message pt2
rudraamin06 Oct 26, 2024
13e25b7
changed from req to res in some functions
NotYourAlejandro Oct 26, 2024
5ba688f
Fixed messageRoutes
NotYourAlejandro Oct 26, 2024
a5b7c02
Refactor server.js file
NotYourAlejandro Oct 26, 2024
7bef33a
committing to go to another branch
jadynlailabot Oct 26, 2024
c8fa772
Refactor groupController.js and groupRoutes.js
NotYourAlejandro Oct 26, 2024
9c0a614
sendMessage pt.3
rudraamin06 Oct 26, 2024
985eb03
Added testing capabilities
NotYourAlejandro Oct 26, 2024
315e3af
Added tests for studentController
NotYourAlejandro Oct 26, 2024
3bb319d
stash
jadynlailabot Oct 26, 2024
279bbd3
testing test.js
jadynlailabot Oct 26, 2024
0db93bc
testing again
jadynlailabot Oct 26, 2024
cf06ff0
messageController
rudraamin06 Oct 26, 2024
559adec
messageController
rudraamin06 Oct 26, 2024
f0b867c
messageController
rudraamin06 Oct 26, 2024
5bf6af9
Completely cranked out a ton of changes
NotYourAlejandro Oct 26, 2024
bf70a61
github debug
jadynlailabot Oct 26, 2024
b1a4dbe
Refactor package.json and groupController.js
NotYourAlejandro Oct 26, 2024
a95627f
Updated several aspects to make things consistent
NotYourAlejandro Oct 26, 2024
3c923c7
GET req now uses parameter for groupID instead of body
NotYourAlejandro Oct 26, 2024
53fd128
Created Deliverable 4 file with instructions and assignments
JLealos Oct 26, 2024
1485b9e
Updated tests
NotYourAlejandro Oct 26, 2024
e00beb0
Completed functions and tests
jadynlailabot Oct 26, 2024
f4e56f6
Restarted tests file
NotYourAlejandro Oct 26, 2024
35b7a97
Merge branch 'messageController' into 65-dev_backend_groupController
NotYourAlejandro Oct 26, 2024
bc8518b
Merge branch 'student_controller' into 65-dev_backend_groupController
NotYourAlejandro Oct 26, 2024
884fc06
introduction and adopted technologies
jadynlailabot Oct 26, 2024
518b4b9
introduction and adopted technologies done
jadynlailabot Oct 26, 2024
c153314
Added implemented requirements
jadynlailabot Oct 27, 2024
c27356a
checking out
jadynlailabot Oct 27, 2024
58fde32
updating D4 test stuff
jadynlailabot Oct 27, 2024
188d59a
Wrapped up D4 contributions
jadynlailabot Oct 27, 2024
3ab86c2
unnecessary constant
NotYourAlejandro Oct 27, 2024
2c664f1
Merge jadyns b and solving conflict
daira27 Oct 27, 2024
931a9d0
fixed d4 outline
daira27 Oct 27, 2024
4b26c5b
Merge pull request #107 from jadynlaila/d4_outlinefix_daira
daira27 Oct 27, 2024
3966dae
removed group chat module files
daira27 Oct 27, 2024
ca73f7d
this is my group chat module contribution
daira27 Oct 27, 2024
0a5108a
added space for everyone on 2.
daira27 Oct 27, 2024
b826b82
Fixed joinGroup
NotYourAlejandro Oct 27, 2024
8f0b3a3
Create LICENSE
NotYourAlejandro Oct 27, 2024
e536215
Added licensing in D4
NotYourAlejandro Oct 27, 2024
6f0e764
Added content for the Deployment section
NotYourAlejandro Oct 27, 2024
b9a2d39
Added initial contents for D4 automated tests
NotYourAlejandro Oct 27, 2024
1a98313
STOPPED TESTS FROM DROPPING DB
NotYourAlejandro Oct 27, 2024
41ef194
Adding commits for frontend. Made text region and combined components
JLealos Oct 27, 2024
702821c
Rewrote the tests
NotYourAlejandro Oct 27, 2024
b57d6ea
Merge branch 'deliverable_4_alex' into 65-dev_backend_groupController
NotYourAlejandro Oct 27, 2024
c7a345b
Merge pull request #108 from jadynlaila/Daira_frontend
daira27 Oct 27, 2024
80e0519
Merge pull request #111 from jadynlaila/jack_frontend_contributions
daira27 Oct 27, 2024
5a0168f
Ignore coverage directory in .gitignore
NotYourAlejandro Oct 27, 2024
c85fe05
Merge branch 'student_controller' into dev_backend
NotYourAlejandro Oct 27, 2024
fbfe0aa
Merge branch 'dev_backend' into dev
NotYourAlejandro Oct 27, 2024
7b78d5b
Merge branch 'dev_frontend' into dev
NotYourAlejandro Oct 27, 2024
1090c6a
Ignore unnecessary files and directories in .gitignore
NotYourAlejandro Oct 27, 2024
6098834
Merge .gitignore and package.json
NotYourAlejandro Oct 27, 2024
a7bd77e
Launch react subprocess in another process
NotYourAlejandro Oct 27, 2024
d441ba6
Now runs both servers at the same time
NotYourAlejandro Oct 27, 2024
3133a54
end me
NotYourAlejandro Oct 27, 2024
c6dfaaf
Fixed cors issue
jadynlailabot Oct 28, 2024
f9603c8
Changed how getGroup gets its variable
NotYourAlejandro Oct 28, 2024
619565e
rudra final
jadynlailabot Oct 28, 2024
b33d11b
Updated package.json and other relevant files to use 'concurrently'.
NotYourAlejandro Nov 16, 2024
b24d929
changed mongoose connect uri
NotYourAlejandro Nov 16, 2024
4c1f91f
moved mongo details out of single URI var
NotYourAlejandro Nov 16, 2024
1e2016b
remove .env file
NotYourAlejandro Nov 16, 2024
824c92d
rename setStudent to createStudent for consistency
NotYourAlejandro Nov 16, 2024
7a4e909
added a 'getAllGroups' function
NotYourAlejandro Nov 16, 2024
e0857d7
swap group post/put functions
NotYourAlejandro Nov 16, 2024
ef003ad
minor group routing refactor
NotYourAlejandro Nov 16, 2024
04714d4
1) added ability to get single student
NotYourAlejandro Nov 16, 2024
a8a921b
minor groupController bug fixes
NotYourAlejandro Nov 16, 2024
75740fc
minor error handling fixes
NotYourAlejandro Nov 16, 2024
e30c628
change http type for message's 'sendMessage'
NotYourAlejandro Nov 16, 2024
ec3c673
changed base message route to singular rather than plural
NotYourAlejandro Nov 16, 2024
bba9a85
Merge pull request #151 from jadynlaila/dev-concurrently
NotYourAlejandro Nov 16, 2024
6062d74
added ability to search students by username in place of id
NotYourAlejandro Nov 16, 2024
a7f47a2
Merge remote-tracking branch 'origin/dev' into dev-routing_consistency
NotYourAlejandro Nov 16, 2024
b241073
moved missing function from studentController to groupController and …
NotYourAlejandro Nov 16, 2024
ddb6ad7
Several updates to updateGroup and joinGroup
NotYourAlejandro Nov 16, 2024
5b65282
Reverted joinGroup to old behavior
NotYourAlejandro Nov 16, 2024
1771515
add created group id to owner's group list
NotYourAlejandro Nov 16, 2024
260344a
Added code for leaveGroup
NotYourAlejandro Nov 16, 2024
19b5f5b
added code for deleteGroup
NotYourAlejandro Nov 16, 2024
970cf84
Added deleteGroup logging and changed routing
NotYourAlejandro Nov 16, 2024
d006c67
minor console debug statement updates
NotYourAlejandro Nov 16, 2024
c02efe5
Created the initial data model
NotYourAlejandro Nov 16, 2024
b1a1a53
Populated meetingController and added required references.
NotYourAlejandro Nov 16, 2024
83d6c19
Forgot to export the routes
NotYourAlejandro Nov 16, 2024
3d79589
Update the server.js route for consistency with refactors in other pe…
NotYourAlejandro Nov 16, 2024
eddbbcd
Added frequencies to meetings
NotYourAlejandro Nov 16, 2024
b165987
Added remaining .ics requirements
NotYourAlejandro Nov 16, 2024
7445e8d
Added remaining .ics requirements and checks
NotYourAlejandro Nov 16, 2024
d6ed2ef
Merge pull request #153 from jadynlaila/dev-routing_consistency
NotYourAlejandro Nov 17, 2024
15f248e
Merge pull request #152 from jadynlaila/dev-mongo_conn_refactor
NotYourAlejandro Nov 17, 2024
ae3ca5e
Merge remote-tracking branch 'origin/dev' into dev-meeting_impl
NotYourAlejandro Nov 17, 2024
df98e0e
Merge pull request #154 from jadynlaila/dev-meeting_impl
NotYourAlejandro Nov 17, 2024
532e6b1
Fix merge conflict that wasn't previously resolved
NotYourAlejandro Nov 17, 2024
f6d3f41
changes from student_controller
jadynlailabot Nov 17, 2024
66ea20b
Delete package-lock.json
NotYourAlejandro Nov 17, 2024
7091b3a
Merge pull request #156 from jadynlaila/loginFunctions
NotYourAlejandro Nov 17, 2024
dfe57ee
Added login page to frontend
vsv7nau Nov 17, 2024
37fdb32
Move createMeeting and updateMeeting to groupRoutes
NotYourAlejandro Nov 17, 2024
4570680
Updated some comments
NotYourAlejandro Nov 17, 2024
6c6253b
Several misc fixes
NotYourAlejandro Nov 17, 2024
42c6ec4
Merge pull request #158 from jadynlaila/dev-meeting_route_fix
jadynlaila Nov 17, 2024
4981931
removed forgot password line
jadynlaila Nov 17, 2024
b500d2c
Merge pull request #157 from jadynlaila/frontend-login
jadynlaila Nov 17, 2024
2936a7b
Minor fix to server.js routing consistency
NotYourAlejandro Nov 17, 2024
0210a11
got login and creating an account working
jadynlailabot Nov 17, 2024
c9df7a3
Merge branch 'login-link' of https://github.com/jadynlaila/Study_Grou…
jadynlailabot Nov 17, 2024
9feb5db
Wrote function to search for groups
NotYourAlejandro Nov 19, 2024
e5db34a
Added result count limit to search results
NotYourAlejandro Nov 19, 2024
50902ba
Added description to search
NotYourAlejandro Nov 19, 2024
06767c1
Merge pull request #159 from jadynlaila/login-link
NotYourAlejandro Nov 19, 2024
9996218
Changed group search to search by only the group name for MVP
NotYourAlejandro Nov 21, 2024
99874ff
Merge pull request #162 from jadynlaila/dev-group_search
jadynlaila Nov 22, 2024
f7c3291
Added test for getAllGroups
NotYourAlejandro Nov 22, 2024
c795c55
Added some test descriptor comments
NotYourAlejandro Nov 22, 2024
cf572f6
Changed how frontend server is called
NotYourAlejandro Nov 22, 2024
65b42d0
Merge pull request #163 from jadynlaila/dev-frontend_server_fix
vsv7nau Nov 22, 2024
262d1a4
Refactor createStudent function to improve logging and response handling
NotYourAlejandro Nov 23, 2024
9e63267
Merge changes from laptop over to changes from desktop.
NotYourAlejandro Nov 23, 2024
947ff0c
Changed how frontend server is called
NotYourAlejandro Nov 22, 2024
7722a42
Removed unnecessary variable
NotYourAlejandro Nov 23, 2024
af626e2
Wrote initial meetingController test.
NotYourAlejandro Nov 23, 2024
3117b1c
Rewrote messageController tests
NotYourAlejandro Nov 23, 2024
685a32c
Fixed minor issues with messageController test
NotYourAlejandro Nov 23, 2024
ae0809e
minor bug fixes
NotYourAlejandro Nov 23, 2024
306c6e8
reintroduce existing server dependency to minimize race conditions
NotYourAlejandro Nov 24, 2024
0310336
remove unnecessary dependencies
NotYourAlejandro Nov 24, 2024
df25d72
fixed config errors
NotYourAlejandro Nov 24, 2024
285b855
Fixed Login Issues
vsv7nau Nov 24, 2024
9594768
protectRoute trial
jadynlailabot Nov 24, 2024
c14d2ae
Merge pull request #164 from jadynlaila/Login-Reformat-Redo
vsv7nau Nov 24, 2024
eafb31f
protected routes established
jadynlailabot Nov 24, 2024
f4454a5
user info now accessible on other pages
jadynlailabot Nov 24, 2024
ec1212b
switch to homepage upon login
jadynlailabot Nov 24, 2024
47e60d3
fetchGroups returns a list of user's groups in console
jadynlailabot Nov 24, 2024
53d16f2
merging dev and cookies
jadynlailabot Nov 24, 2024
e1b17c7
successfully merged dev into cookies branch
jadynlailabot Nov 24, 2024
f4be746
Merge pull request #165 from jadynlaila/cookies
jadynlaila Nov 24, 2024
30dbda1
Re-added navbar files
vsv7nau Nov 24, 2024
92123a4
Changed file paths
vsv7nau Nov 24, 2024
0d6422c
Navbar now mends with GCM
vsv7nau Nov 24, 2024
e39ca94
Fixed login p2 and Navbar
vsv7nau Nov 24, 2024
c8a5945
Rewrote some groupController tests and added some debugging lines
NotYourAlejandro Nov 24, 2024
a21deb6
actual group info is displayed
jadynlailabot Nov 25, 2024
b6fdf0b
Merge pull request #166 from jadynlaila/groupchat-link
JLealos Nov 25, 2024
a4d136e
Merge branch 'dev' into Nav-Update
jadynlaila Nov 25, 2024
775bbab
Added some more tests
NotYourAlejandro Nov 25, 2024
1d3190a
Merge pull request #167 from jadynlaila/Nav-Update
jadynlaila Nov 25, 2024
bb292ba
Adding settings files
JLealos Nov 25, 2024
f87a206
alex editing save
JLealos Nov 25, 2024
cb6641c
ok lol
JLealos Nov 25, 2024
2930e25
Merge branch 'dev' into group/User-settings
JLealos Nov 25, 2024
994e3c9
Added even more tests
NotYourAlejandro Nov 25, 2024
a9e7f03
Fixed minor routing issues
NotYourAlejandro Nov 25, 2024
eb0659d
testing1
daira27 Nov 25, 2024
fbf2616
pulling
jadynlailabot Nov 25, 2024
2e244f7
merged changes
jadynlailabot Nov 25, 2024
7eebbd0
messages display on group chat now
jadynlailabot Nov 25, 2024
418d84b
Work in progress
JLealos Nov 25, 2024
41e0d6a
lol
JLealos Nov 25, 2024
4cd2e78
User settings working
JLealos Nov 25, 2024
5644812
Added more tests
NotYourAlejandro Nov 25, 2024
5681c4a
next update
JLealos Nov 25, 2024
cc380fd
groupsettings progress
JLealos Nov 25, 2024
b9b40b3
Improved messageController logging
NotYourAlejandro Nov 25, 2024
b63b33b
Final set of tests to add
NotYourAlejandro Nov 25, 2024
da8ccdb
Improved error logging
NotYourAlejandro Nov 25, 2024
753140b
Merge pull request #170 from jadynlaila/messages
jadynlaila Nov 25, 2024
f41bba9
changes
JLealos Nov 25, 2024
675f6bb
Wrote an initial failing thest for getMeeting
NotYourAlejandro Nov 25, 2024
008b83f
css fix
JLealos Nov 25, 2024
4c3b3f7
group functions added
daira27 Nov 25, 2024
8c07f8c
Added tests for messageController
NotYourAlejandro Nov 25, 2024
d347a05
Commented out remaining tests since we won't finish them in time.
NotYourAlejandro Nov 25, 2024
0963e81
Merge pull request #177 from jadynlaila/dev-backend_test_rewrite
NotYourAlejandro Nov 25, 2024
c9ffaf8
Merge branch 'dev' into user_group_settings
NotYourAlejandro Nov 25, 2024
65b78fb
Merge pull request #183 from jadynlaila:user_group_settings
NotYourAlejandro Nov 25, 2024
77ec053
fixed import
JLealos Nov 25, 2024
0de43fd
baseurl fix
JLealos Nov 25, 2024
6aa4fd6
fixed import
JLealos Nov 25, 2024
7db2850
fix: update import paths for components in GroupChatModule and TextRe…
NotYourAlejandro Dec 1, 2024
7d91c43
navbar gets all student and group info
jadynlailabot Dec 2, 2024
72ab111
commit
daira27 Dec 2, 2024
57580a2
Fix the error in TextRegion causing error screens.
NotYourAlejandro Dec 3, 2024
57af4ee
Updated group counts to hide if the data is unavailable.
NotYourAlejandro Dec 3, 2024
e3c7b97
Merge branch 'dev' into navbar-connection
NotYourAlejandro Dec 3, 2024
0bff481
Fix the text region routing
NotYourAlejandro Dec 3, 2024
0bd334f
Merge pull request #196 from jadynlaila:navbar-connection
NotYourAlejandro Dec 3, 2024
47eb677
minor changes
jadynlailabot Dec 3, 2024
ded6801
Merge branch 'dev' into dev-groupSearch
jadynlailabot Dec 3, 2024
653e7f5
Merge branch 'dev' into dev-groupSearch
jadynlailabot Dec 3, 2024
68b9441
Update token on save. Also redirect to main page on save.
NotYourAlejandro Dec 3, 2024
b7ae063
Merge pull request #197 from jadynlaila/dev-user_settings_token_update
jadynlaila Dec 3, 2024
887f72d
Added logout button
NotYourAlejandro Dec 3, 2024
0fcf42d
Added not logged in behavior to group chat module
NotYourAlejandro Dec 3, 2024
5ccac0e
Replaced navigate() with window.location.href
NotYourAlejandro Dec 3, 2024
cd7d641
Replaced stray navigate()
NotYourAlejandro Dec 3, 2024
3b5a0bb
Merge pull request #198 from jadynlaila/dev-logout_button
vsv7nau Dec 3, 2024
e136576
Add email attribute to student info scrub
NotYourAlejandro Dec 3, 2024
a333cb9
Initial commit
NotYourAlejandro Dec 3, 2024
bfd1977
users can create and add groups
jadynlailabot Dec 3, 2024
b5368d3
fixed bugs
daira27 Dec 3, 2024
b36283d
Update port used by textregion when obtaining messages
NotYourAlejandro Dec 3, 2024
8acd45f
Added icon resources
NotYourAlejandro Dec 3, 2024
a0d08d3
Wrote initial MeetingsComponent and IndividualMeetingComponent compon…
NotYourAlejandro Dec 3, 2024
a8ddaa5
Minor MeetingsOverlay bug fixes
NotYourAlejandro Dec 3, 2024
4f070c2
Change createGroup route from put to post
NotYourAlejandro Dec 3, 2024
8e7c602
Fix bug in meetingController where a request was returned, not a resp…
NotYourAlejandro Dec 3, 2024
813bd40
Change return value in createMeeting from request to response
NotYourAlejandro Dec 3, 2024
6f0d036
Created passing test for creating a meeting
NotYourAlejandro Dec 3, 2024
9311ea0
Fixed issue in messageController where isSender in deleteMessage wasn…
NotYourAlejandro Dec 4, 2024
429f5c6
Wrote tests for deleting a meeting
NotYourAlejandro Dec 4, 2024
cda5831
Added test for getting a meeting
NotYourAlejandro Dec 4, 2024
7792b34
Fixed group settings to use the backend API properly
NotYourAlejandro Dec 4, 2024
fc45bcf
Change the concurrently prefix colors
NotYourAlejandro Dec 4, 2024
46ef24c
Merge branch 'dev' into dev-meeting_overlay
NotYourAlejandro Dec 4, 2024
9a47235
Merge pull request #199 from jadynlaila/dev-get_student_email_scrub_fix
NotYourAlejandro Dec 4, 2024
25e23c7
Merge pull request #200 from jadynlaila/dev-get_message_port_fix
NotYourAlejandro Dec 4, 2024
b9cc767
Merge pull request #201 from jadynlaila/dev-meeting_controller_tests
NotYourAlejandro Dec 4, 2024
077ed76
Make the MeetingsComponent return value more concise
NotYourAlejandro Dec 4, 2024
640e996
Merge branch 'dev' into dev-meeting_overlay
NotYourAlejandro Dec 4, 2024
0a4a903
Replace the textregion component for debugging
NotYourAlejandro Dec 4, 2024
92c00ea
Fixed groupController so that the group ID is appended properly
NotYourAlejandro Dec 4, 2024
6951470
Change the API call used to join a group
NotYourAlejandro Dec 4, 2024
83f38fc
Updated default page on startup to show "group search" component, and…
NotYourAlejandro Dec 4, 2024
84f8175
The meeting HTML works now
NotYourAlejandro Dec 4, 2024
3821d0d
Added good-enough CSS for the meeting
NotYourAlejandro Dec 4, 2024
30b48f4
added button, improved few things
daira27 Dec 4, 2024
dfa9792
fixed scrolling on group chat container
daira27 Dec 4, 2024
4a1255a
Implemented the MeetingsOverlay as a sidebar to TextRegion
NotYourAlejandro Dec 4, 2024
16a3b70
Minor updates
NotYourAlejandro Dec 4, 2024
d383833
Made some changes to settings CSS
JLealos Dec 4, 2024
a4440b7
Merge pull request #202 from jadynlaila/dev-meeting_overlay
jadynlaila Dec 4, 2024
53be589
Merge branch 'dev' into dev-groupSearch-alex
jadynlaila Dec 4, 2024
cd6930d
Merge pull request #203 from jadynlaila/dev-groupSearch-alex
jadynlaila Dec 4, 2024
b0cf6a2
Merge pull request #204 from jadynlaila/jack_polishing
NotYourAlejandro Dec 4, 2024
2356a86
Reversed meeting expand button rotation
NotYourAlejandro Dec 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 0 additions & 2 deletions .env

This file was deleted.

18 changes: 16 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,23 @@
# local env files
.DS_Store
.env
.env.local
.env.development.local
.env.test.local
.env.production.local

/node_modules

# other files
*.bkp
*.DS_Store*
package-lock.json
.pnp.js
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# directories
build
coverage
node_modules
.vscode
.pnp
313 changes: 313 additions & 0 deletions Deliverables/Deliverable 4.md

Large diffs are not rendered by default.

44 changes: 44 additions & 0 deletions Deliverables/Deliverable_3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# System Description
*Provide a brief textual description of your system. The first paragraph of the description must contain the problem statement, the product position statement, and the value proposition of your system (you can refine/update what you presented in D.2). The following paragraphs should describe the key requirements of the system. This description should be consistent with D.2 stakeholders, requirements, use cases, and user stories. Again, refinements/updates are welcome since your understanding of the system is constantly evolving.*

*Use Bold every time you use a noun that is a class in your model. Use Italic every time you use a noun that is an attribute in your model. Use Bold and Italic every time you use a noun or verb that is an association in your model.*

*Grading criteria (5 points): The description should be clear, concise, and well-written, free of typos and grammar problems. The use of bold, italic, and underline should be coherent with the model presented in Section 2---all classes, attributes, and associations from the model should appear in the text consistently with the model.*

Our project focuses on the problem of difficulty in connecting with peers for study collaboration affects college students across various disciplines, particularly those in larger universities who may feel isolated or unsure about finding study groups. The impact of this problem is diminished academic performance, increased stress, and lost opportunities for social interaction and skill development, which can lead to lower retention rates and a lack of community among students. The product is for college students who struggle to find and connect with study groups for collaborative learning. The name of the product is StudySphere which is a web platform that simplifies the process of discovering, joining and scheduling study groups to enhance academic success and build community. Unlike traditional social media platforms or general messaging apps. Our product focuses specifically on connecting students based on their courses and study needs, fostering a supportive academic environment. StudySphere empowers students to collaborate by simplifying the process of finding and connecting with study groups, enhancing academic success aligning with our slogan "Study Smarter Together”.

StudySphere allows students to create, manage, and delete their own **student accounts** as needed. The creation of the **student account** deals with attributes such as *email, password, username, Firstname, Lastname, and college* all of which are required prior to account creation. *username* cannot be changed post-registration. Users also have the ability to delete their **student accounts** if they feel the need to do so. The management part of the system relates to the user settings, a subset of account management covered in the following paragraph.

A key requirement in Study Sphere is managing **user settings**, this requirement allows students to manage their **student account** information. Through **user settings** a student can manage information such as *First name, Last name, email, university, profile picture, display name, and password* This feature is critical for accommodating different user needs and preferences, allowing students to customize their interaction with **groups, message threads,** and other platform features. Personalizing these settings ensures a flexible user experience.

StudySphere offers **group chats** that are moderately customizable in order to enhance the overall user experience and allow for efficient communication between students ( the main purpose of the product ). Each **group chat** allows the **owner** or **administrators** to modify **attributes** such as *group profile picture, group description, group title, members, member count limit, calendar updates, the deletion of the group, the creation of the group, and background color*. These **group chats** provide real time communication between **student accounts** and **groups**, enabling **users** to communicate effectively, plan meetings or study sessions, and most importantly making friends within their community.

Another essential feature requirement involves managing **group settings**. This functionality allows students to customize key aspects of any **group** they create or join, including setting a *group name*, providing a *group description*, and determining the *member limit*. Additionally, users can view the *Group ID* and the *Member IDs* of group participants, ensuring each **group** is tailored to meet specific study needs. This capability fosters a safe, organized, and collaborative space, where members can engage effectively in their academic pursuits.

**[OTHER PARAGRAPHS HERE]**

For the non-functional requirements, performance is critical to ensure smooth interactions with the platform. The user experience relies on *low latency* and consistent guaranteed performance,as it directly impacts usability and user satisfaction. The system should maintain a response time of less than 5 seconds for chat and other high-priority interactions. Performance is especially emphasized in user stories like "Jack's" need to communicate with group members and schedule times efficiently.

Platform security is at the forefront of our design in order to keep user data secure. The system must disallow unauthenticated users from interacting with the system. Additionally, authentication must be handled in a secure manner with the *password* being properly encoded/hashed/encrypted both during transmission and when it is being stored.

Scalability is important to the future of our project. In order to serve a potentially growing user base, the system must be structured to minimize the maintenance overhead that comes with mismatched scaling expectations. Failure to do so may result in unanticipated system errors and/or downtime, which would decrease the reliability of the system.

Compatibility across devices is essential to ensure that the platform is accessible by students using different systems, whether on mobile,or desktops. Multi-device functionality allows a seamless user experience regardless of device and browser, allowing for better access. Compatibility and better accessibility is directly in line with our goal of making study groups more widespread and easier to find.

# Model
*Provide the conceptual model of your system as a UML class diagram. Represent proper cardinalities (multiplicities) for all associations. Also include the association names.*

*Some points to consider:*

- *Use UML adequately. Do not use graphical elements that are not part of the language. Represent compositions and aggregations when relevant.*
- *This model is not an ER diagram (entity-relationship model), which is focused on relational database systems. However, both diagrams have similarities.*
- *Do not overcomplicate how you represent the elements of your model (e.g., using inheritance or an association when they are not necessary). Pay attention to simplicity, maintainability, unnecessary repetition, cohesion, and coupling.*
- *Do not represent actions that don’t need to be registered in the system.*
- *Do not represent technical elements, such as user interface or programming language libraries in the model. At this point, we are modeling the business logic/domain of your system. The model will be refined during the design phase to include technology-specific elements and decisions.*
- *Do not represent "System" as a class in your model. Everything that you are modeling is part of the system.*
- *If you need to justify your decisions, you can write your rationale in this section or use UML comments in the diagram.*
- *The model must have at least 8 classes. If you need more classes, you can add requirements in the system description that did not appear in D2.*

*Grading criteria: You should correctly use the UML specification. Your model should have the minimum number of classes. Your domain should be adequately modeled. The model should avoid unnecessary complexity, repetition, lack of cohesion, and coupling. The classes should be at an adequate abstraction level.*

**[insert model here]**
Binary file added Deliverables/res/jadyn_d4/jadyn_add_group.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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 Deliverables/res/jadyn_d4/jadyn_jest.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 Deliverables/res/jadyn_d4/jadyn_remove_group.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion node_modules/bson/LICENSE.md → LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]
Copyright 2024 Rudra Amin, Alexander Anthis, Jadyn Calhoun, Jack Lealos, Daira Santacruz, Valentino Valero

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
23 changes: 23 additions & 0 deletions backend/config/db.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
const mongoose = require("mongoose");
const dotenv = require("dotenv").config();

const connectDB = async () => {
const MONGO_URI = process.env.MONGO_URI
const MONGO_USERNAME = process.env.MONGO_USERNAME
const MONGO_PASSWORD = process.env.MONGO_PASSWORD
const MONGO_DATABASE = process.env.MONGO_DATABASE
const MONGO_CONN_DETAILS = `mongodb+srv://${MONGO_USERNAME}:${MONGO_PASSWORD}@${MONGO_URI}/${process.env.MONGO_DATABASE}`

console.log(`\x1b[32mConnecting to Mongo as '${MONGO_USERNAME}'\x1b[0m`)
console.log(`\x1b[32mUsing database '${MONGO_DATABASE}'\x1b[0m`)

try {
const conn = await mongoose.connect(MONGO_CONN_DETAILS);
console.log(`MongoDB Connected: ${conn.connection.host}`);
} catch (error) {
console.log(error);
process.exit(1);
}
}

module.exports = connectDB;
16 changes: 16 additions & 0 deletions backend/config/generateToken.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
const jwt = require("jsonwebtoken")

const generateTokenSetCookie = (id, res) => {
const token = jwt.sign({id}, process.env.JWT_SECRET, {
expiresIn: "15d"
});

res.cookie("jwt", token, {
maxAge: 15 * 24 * 60 * 60 * 1000, // MS
httpOnly: true, // prevent XSS attacks cross-site scripting attacks
sameSite: "strict", // CSRF attacks cross-site request forgery attacks
secure: process.env.NODE_ENV !== "development",
});
}

module.exports = generateTokenSetCookie;
Loading