Authors: David Lam, Kennan French, and Christopher Knight
A repository for our CSSE 333 project. The goal of this project is to create a working prototype demonstration of a Tinder for Gamers. Not in the dating sense but as a social network for gamers to connect with other gamers with similar interest.
- Node.js
- http-server
- Putty or SSH client
- Download the repository.
- Navigate to the root of the repository folder via terminal.
- Run
npm install
to update/retrieve required npm packages. - Run
npm install http-server --g
to install required test package. - Run
npm start
to build main.js located inpublic\js
. This will build the main.js upon any detected changes. Note: the terminal will be inactive. - Run
http-server -p <port>
to start the server.
- Alternative: Rather than using
http-server
, you can launchnode app.js
ornodemon app.js
instead. Everything else still follows.
- Open Putty or SSH client.
- Go to
Connection -> SSH -> Tunnels
. - Set port to
3306
and destination tolocalhost:3306
. Then click the add button. - Go back to
Session
and enter the hostname given in the email. - Optional: Save Session with a session name below.
- Click open and login with emailed credentials.
- Now open a new terminal window and navigate to the repository.
- Optional: Run
npm install nodemon -g
to install nodemon. - Run
nodemon server.js
ornode server.js
. This will run a server on port3333
. - Open your prefered browser and go to
localhost:<port>
where<port>
is the port used inhttp-server
. - You should now see the react webpage.
- SSH into the provided VM (see steps above).
- Enter into the terminal
cd joinProject/
. - Recommended: enter into the terminal
git pull origin master
. - Run the shell script by entering this into the terminal
./run.sh
. - You can now access the server remotely by going to
joincsse333.csse.rose-hulman.edu:3330
(only when on campus). - Note: The servers (web and API server) will now run indefinitely. To shut down the servers, run
forever stopall
.
Page | Assigned | Status |
---|---|---|
User Profile | Kennan French | Incomplete |
User Account Setting | Kennan French | Incomplete |
Game Info | David Lam | Completed |
Search Result | David Lam | Completed |
Preference Selection | Kennan French | Incomplete |
Matching | David Lam | Completed |
Conversation | David Lam |
Completed |
- Create login page
- Account creation page
- Set up nav bar
- Email Validation
- Password Validation
- Account Validation
- Basic Routing
- Set up Express Server
- Create preference selection form
- Create message/chat UI
- Design profile page
- Create scripts
- Tutorials for javascript, node, mysql
- Connect account creation page to backend
- Start games page
- Peer review stored procedures
- Have users retype password for front end validation
- Token-based authentication
- Begin implementing stored procedures
- Sign out procedures
- Modified Create stored procedure
- Modified Login stored procedure
- Made GetGameByTitle stored procedure
- Start Game searching
- Learn React
- Hook stuff up with David's stuff (related to above)
- Write js to do the stuff I said js would do on previous pages
- Unify/standardize css, custom div classes
- At least registration front-end validation (David Lam)
- Create dummy user for VM (David Lam)
- Stored procedures for user creation + account info updates
- Stored procedures for creating + updating available hours
- Stored procedures for user rating
- Help get mysql talk to front end
- Figure out dummy user permissions
- Matching page
- Add tags to game page
- Complete Game searching
- Made games page database dependent
- Added more security checks on authentication-required pages
- Set up pages for User Profile, Preference, and Messages
- Added ESLint
- Added Travis CI integration
- Reduced Coupling in handling token authentication
- Cleaned code running linter
- Make schedule widget
- Make rest of widgets needed for user profile page
- Profile page should be done
- More integration
- User preferences/settings page
- Continue writing stored procedures as needed
- Figure out mysql data dump
- Add lots of data to tables
- Begin integrating matching page front end with back end (dependent on Chris)
- Improved Linter with React
- Commented Existing Code
- Get basic Chat components
- Completed Chat components
- Match page accept/reject now functional
- Users can add games to their "library" from the Game Page
- Users can now view their library
- Users can now delete games from their library
- SQL Stored Procedures written:
- get_game_by_id
- add_message
- add_friend
- get_message_history
- is_game_in_library
- get_user_library
- delete_game_from_library
- Scroll box (class? widget?) (David Lam)
- Integrate widgets with React virtualization + fix other React "quirks"
- User preferences/settings page (done, just fighting with git to publish)
- Match page back end/implement matching algorithm
- Study for test
- Heuristics discussion
- Remove friend frontend
- Work on paper
- Updated SQL Stored Procedures:
- get_friends_list (Now returns alphabetically)
- Wrote SQL Stored Procedures:
- delete_friend (Chris was asleep when writing UI)
- Added dependencies badge.
- Addded bash shell script for starting servers.
- Integrated changes introduced by multi-valued Platform changes.
- Setup GitHub Pages.
- Fixed Preference Page bugs introduced by Kennan
- Updated some pages to meet React Router changes.
- User's can now have empty friends list.
- Remove friend backend (David Lam)
- Work on paper
- Add index to tables
- Get multi-valued property of Platform working
- Integrate widgets with React virtualization + fix other React "quirks"
- User preferences/settings page (done, just fighting with git to publish)
- Work on paper
- Integrate Profile page
- User Rate other Users
- Compatibility with Mozilla Firefox
- Hash Passwords