Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
323248a
Create Project Proposal
RVRX Sep 26, 2022
a0b4d57
simple clicking game with two base upgrades
DataHalation Oct 4, 2022
5e5571b
adding more upgrades and upgrade text to be used later
DataHalation Oct 4, 2022
80dfb42
added react
gklimov Oct 6, 2022
fb3fe33
added placeholder favicon
gklimov Oct 6, 2022
ca63f0b
feat: Add GitHub auth functionality
RVRX Oct 5, 2022
5bf8f6f
feat: add request logger middleware
RVRX Oct 6, 2022
7d5d92a
chore: add build dir to .gitignore
RVRX Oct 6, 2022
d39e92d
BUGTEST: Route code not called on '/' route
RVRX Oct 6, 2022
c088060
add start script back
RVRX Oct 6, 2022
0684584
fixed the bug
gklimov Oct 7, 2022
785d165
fixed bug but without server changes
gklimov Oct 7, 2022
407408c
added bigger buttons
gklimov Oct 9, 2022
420f145
added save func
gklimov Oct 9, 2022
42cc722
fixing greg's oopsie (commented out the fetch)
DataHalation Oct 9, 2022
aab1c96
DB Connection
benSakac-WPI Oct 9, 2022
2ac25fb
added back sample env with new vars
RVRX Oct 9, 2022
ba9d88c
added leaderboard
gklimov Oct 9, 2022
a9f2a34
create DB collections w/ real usernames
benSakac-WPI Oct 9, 2022
c86e6f0
server side load function
benSakac-WPI Oct 9, 2022
d6e3944
Added Loading
gklimov Oct 10, 2022
aa6b88a
logout button
benSakac-WPI Oct 10, 2022
7036a4d
change title of index.html
benSakac-WPI Oct 10, 2022
0f2582a
feat: added looping audio
RVRX Oct 10, 2022
9100323
remove build folder from git (again :0)
RVRX Oct 10, 2022
5d4a3d4
added the images
DataHalation Oct 10, 2022
ab91ee6
Merge remote-tracking branch 'origin/bug-after-rebase' into bug-after…
DataHalation Oct 10, 2022
5a6a76f
resized the buttons
DataHalation Oct 10, 2022
9d63b05
feat: added some styles.css
RVRX Oct 10, 2022
f02e2e7
feat: "style" login page [ just redirect user ;) ]
RVRX Oct 10, 2022
5f6cdea
save interval
gklimov Oct 10, 2022
32d9a1e
actually styled login page
benSakac-WPI Oct 11, 2022
5db7acb
Update README.md
gregklimov Oct 11, 2022
640f093
Update README.md
gregklimov Oct 11, 2022
ed1e469
Update README.md
gregklimov Oct 11, 2022
e0d1de7
Update README.md
RVRX Oct 12, 2022
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
7 changes: 7 additions & 0 deletions .env.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
GITHUB_CLIENT_ID="--insert-github-client-id-here--"
GITHUB_CLIENT_SECRET="--insert-github-client-secret-here--"
CALLBACK_URL="http://localhost:3000/auth/github/callback"
SESSION_SECRET="literally-whatever"
DB_USER="application"
DB_PASSWORD="HsDd-6U44fzND._HEPwT"
DB_HOST="gompeiclicker.eqlvtty.mongodb.net/?retryWrites=true&w=majority"
22 changes: 22 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

.cache/
coverage/
dist/*
!dist/index.html
node_modules/
*.log

# OS generated files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

.env
node_modules
.idea

build
100 changes: 52 additions & 48 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,53 @@
# Final Project
*Due before the start of class, October 13th (final day of the term)*
Cole Manning, Mason Powell, Ben Sakac, Greg Klimov
http://gompei-clicker-final-project.glitch.me

Video: https://www.youtube.com/watch?v=mUVeiCJihdE

**A brief description:**

Our project is a “Cookie Clicker”-esque game, but with Gompei as the object to be clicked. As you click Gompei you will gain “goat bucks” for each click. You can purchase ‘upgrades’ to automate or improve your clicking. You can login via Github OAuth and your upgrades and scores will be saved either once every minute or manually.

There is a global top-10 scoreboard for all players to see who is the best Gompei Clicker out there. The game also features a playlist soundtrack and Favicon tab icon.

**Additional instructions:**

Users can log in with GitHub OAuth. The home page is a fullscreen button that when clicked initiates the login with Github. Saving and Leaderboard updating occurs once every minute and when the user clicks the corresponding button.

**Technologies:**
MonogoDB - used to save user’s score and upgrades
Express - used to host server backend and to process get and push requests
GitHub OAuth - used for login
React - used for main page UI, particularly for Leaderboard and Upgrades
Snowpack - used for project organization and jsx builds
Bootstrap - used for styling
Favicon - used for tab icon
Glitch - used for hosting the project

**Challenges:**
One challenge we faced on the project was getting the music to play
When trying to parse json input from server, sometimes getting the data simply didn't work for reasons unknown
Exporting the project to Glitch proved challenging because Glitch did not recognize Mime as existing

**What each group member was responsible for designing / developing.**
Cole
GitHub OAuth implementation
Worked on Music with Mason
Work on styling app with Mason
Mason
Styled app page with Cole
Implemented basic app functions clicking and buying upgrades
Worked on music with Cole
Ben
Setup the DB on cloud.mongodb
Created routes on the server to send or receive data to the DB
Game data loading and saving Leaderboard
Created giant button for login page
Greg
Added React and snowpack to project
Converted existing UI to React
Created and hooked up React Upgrade Buttons
Created and hooked up Leaderboard
Added Favicon

**Project video:**

For your final project, you'll implement a web application that exhibits understanding of the course materials.
This project should provide an opportunity to both be creative and to pursue individual research and learning goals.

## General description
Your project should consist of a complete Web application, exhibiting facets of the three main sections of the course material:

- Static web page content and design. You should have a project that is accessible, easily navigable, and features significant content.
- Dynamic behavior implemented with JavaScript (TypeScript is also allowed if your group wants to explore it).
- Server-side programming *using Node.js*. Typically this will take the form of some sort of persistent data (database), authentication, and possibly server-side computation.
- A video (less than five minutes) where each group member explains some aspect of the project. An easy way to produce this video is for you all the groups members to join a Zoom call that is recorded; each member can share their screen when they discuss the project or one member can "drive" the interface while other members narrate (this second option will probably work better.) The video should be posted on YouTube or some other accessible video hosting service. Make sure your video is less than five minutes, but long enough to successfully explain your project and show it in action. There is no minimum video length.

## Project ideation
Excellent projects typically serve someone/some group; for this assignment you need to define your users and stakeholders. I encourage you to identify projects that will have impact, either artistically, politically, or in terms of productivity.

### Deliverables

#### Form Team (due 9/25)
Students are will work in teams of 3-5 students for the project; teams of two can be approved with the permission of the instructor. Working in teams should help enable you to build a good project in a limited amount of time. Use the `#project-logistics` channel in Discord to pitch ideas for final projects and/or find fellow team members as needed.

Teams must be in place by end of day on Sunday, September 25th. If you have not identified a team at this point, you will be assigned a team. You will be given some class time on Monday to work on your proposal, but please plan on reserving additional time outside of class as needed.

#### Proposal (due 9/27)
Provide an outline of your project direction and the names of associated team members.
The outline should have enough detail so that staff can determine if it meets the minimum expectations, or if it goes too far to be reasonable by the deadline. Please include a general description of a project, and list of key technologies/libraries you plan on using (e.g. React, Three.js, Svelte, TypeScript etc.). Two to four paragraps should provide enough level of detail. Name the file proposal.md and submit a pull request by Tuesday, September 27th at 11:59 PM (end of day). Only one pull request is required per team.

There are no other scheduled checkpoints for your project.

#### Turning in Your Project
Submit a second PR on the final project repo to turn in your app and code. Again, only one pull request per team.

Deploy your app, in the form of a webpage, to Glitch/Heroku/Digital Ocean or some other service; it is critical that the application functions correctly wherever you post it.

The README for your second pull request doesn’t need to be a formal report, but it should contain:

1. A brief description of what you created, and a link to the project itself (two paragraphs of text)
2. Any additional instructions that might be needed to fully use your project (login information etc.)
3. An outline of the technologies you used and how you used them.
4. What challenges you faced in completing the project.
5. What each group member was responsible for designing / developing.
6. A link to your project video.

Think of 1,3, and 4 in particular in a similar vein to the design / tech achievements for A1—A4… make a case for why what you did was challenging and why your implementation deserves a grade of 100%.

## FAQs

- **Can I use XYZ framework?** You can use any web-based frameworks or tools available, but for your server programming you need to use Node.js. Your client-side scripting language should be either JavaScript or TypeScript.
Loading