Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
cdf9b40
Create proposal.md
cscopetski Sep 27, 2022
328c820
Update proposal.md
cscopetski Sep 27, 2022
a11a17a
initialized project
cscopetski Oct 1, 2022
229ac97
created base database client
cscopetski Oct 3, 2022
7db7cb8
Kaley - some html and css
Oct 5, 2022
47b8708
implemented mongoose
cscopetski Oct 6, 2022
5d65e78
re-create gitignore
cscopetski Oct 6, 2022
ed1e476
Delete .env
cscopetski Oct 6, 2022
502d4c8
basic user/encounter structure
cscopetski Oct 6, 2022
ed528f3
added enemy generation and user stat routes
cscopetski Oct 7, 2022
c04e9ae
merge
cscopetski Oct 7, 2022
6c3ccb8
bruh
Nappa22428 Oct 8, 2022
9e4ed4f
Merge branch 'main' into Joe
Nappa22428 Oct 8, 2022
2a9c9aa
Login functionality
cscopetski Oct 8, 2022
96bdcd5
Implemented combat
cscopetski Oct 9, 2022
5fae69f
dialogue box (mostly), and dark mode login
kateb02 Oct 10, 2022
281b3c1
shop maybe
Nappa22428 Oct 10, 2022
cef441c
uidone
Oct 10, 2022
c513ac8
Merge branch 'main' into Joe
Nappa22428 Oct 11, 2022
02c4b15
i think i did it
Nappa22428 Oct 12, 2022
1e6c57d
changed login theme
kateb02 Oct 12, 2022
ad02da9
Merge branch 'Kaley-2'
cscopetski Oct 12, 2022
42a1b9f
Update encounters.service.js
cscopetski Oct 12, 2022
bc463c4
Merge branch 'kate-but-fr-this-time'
cscopetski Oct 12, 2022
a939988
adjusted
Oct 12, 2022
aeb4552
Fixed merge conflicts
cscopetski Oct 12, 2022
ca0a306
Merge branch 'Kaley-2'
cscopetski Oct 12, 2022
20ff9f0
Fixed css styling
cscopetski Oct 12, 2022
6ec5bc0
images and charSelect
kateb02 Oct 12, 2022
2f3c8ee
Added logout button
cscopetski Oct 12, 2022
2d22dcf
Merge branch 'kate-but-fr-this-time'
cscopetski Oct 12, 2022
42048f4
implemented character select
cscopetski Oct 12, 2022
2a5528e
updated read me
kateb02 Oct 12, 2022
5fced6c
implemented shop
cscopetski Oct 12, 2022
c455ea8
Merge branch 'main' of https://github.com/cscopetski/final_project
cscopetski Oct 12, 2022
31b0f5e
Update login.html
cscopetski Oct 12, 2022
9369200
Update README.md
Nappa22428 Oct 12, 2022
452b7a0
Update README.md
cscopetski Oct 12, 2022
2a2a266
update page headers
cscopetski Oct 12, 2022
f9bb2d9
Merge branch 'main' of https://github.com/cscopetski/final_project
cscopetski Oct 12, 2022
0f24be0
Update README.md
cscopetski Oct 12, 2022
d3af05f
Update README.md
cscopetski Oct 13, 2022
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
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
MONGO_USER = cs4241
MONGO_PASS = 123
MONGO_HOST = cluster0.5tfsnrq.mongodb.net
HOST = http://localhost:3000/

COOKIE_SECRET = v6h23871rvh78123r801t71trv7
132 changes: 132 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional stylelint cache
.stylelintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local

# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache

# Next.js build output
.next
out

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# vuepress v2.x temp and cache directory
.temp
.cache

# Docusaurus cache and generated files
.docusaurus

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
76 changes: 43 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,59 @@
# Final Project
*Due October 13th (final day of the term)*

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:
### 1. A brief description of what you created, and a link to the project itself (two paragraphs of text)

- 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.
#### Link: https://final-project-gompeis-gambit.glitch.me

## 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.
The main gameplay loop consists of two features:
#### Combat:
- 1-4 randomly generated enemies (stats, type, etc.), with difficulty scaling based on how many encounters the player has completed.
- choose which enemy to attack, and is then attacked by all the remaining enemies.
- Upon defeating enemies the player is rewarded with gold which can be spent to upgrade their stats.

### Deliverables
#### Shop:
- choice of 3 items
- a max health upgrade
- damage upgrade
- a healing upgrade
- stats and cost of these items are randomly generated, scaling based on how many encounters the player has completed.

#### 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.
All player stats are stored in the database, so users can leave mid-run and return without losing progress.

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.
As a group we decided to make a website with a text rpg coded into it. With the text RPG we looked at some test rpgs to see look at what makes it and how to create ours based off them. After brainstorming we figured out the basics of what we wanted and what we hoped to get finished if we had time. We decided we wanted a game that had enemies that would be spawned randomly and would give gold for the player to upgrade stats in the shop.
After the time was up we created most of what we wanted when we were brainstorming. We left out the bosses we wanted to add and non combat choices that would either help you or kill you. But because of that we were able to finish our game with what really mattered with a functioning game with random enmies that scale and a player thats stats increase by buying items from the store. We also have the game tied to accounts to make it easy on people with the ability to choose what character they want to use(it only affects visual not gameplay) with buttons that let the player choose.

#### 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.
### 2. Any additional instructions that might be needed to fully use your project (login information etc.)

There are no other scheduled checkpoints for your project.
Sample email to login:
email: [email protected]
password : 123

#### 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.
(Can type in random email and password, and it will create an account)

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.
### 3. An outline of the technologies you used and how you used them.

The README for your second pull request doesn’t need to be a formal report, but it should contain:
- MongoDB - storing user login and player stats
- Bcrypt - encrypting passwords
- Body-parser - parsing json
- cookie parser - parsing cookies
- dotenv - storing environment variables
- express - backend server
- express session - managing/storing sessions
- mongoose - creating MongoDB schemas

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.
### 4. What challenges you faced in completing the project.

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%.
- Writing asynchronous requests and having the UI update correctly based on responses from the backend server
- Using closures to dynamically generate buttons to create a turn-based game that relies on user-input.
- Storing user session via cookies and player stats in the database

## FAQs
### 5. What each group member was responsible for designing / developing.
Brainstorming - all

- **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.
- Caleb - setup database, backend routes, combat and shop front-end logic, procedural enemy generation back-end logic
- Joe - worked on the basics of the shop function with get item, and gave helping tips to others on their parts, recodrding and brief description
- Kaley - front end html and css (game screen)
- Kate - front end html and css (login and character select)

### 6. A link to your project video.
#### Link: https://www.youtube.com/watch?v=3PgQ-U3BUfA
12 changes: 12 additions & 0 deletions node_modules/.bin/mime

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

17 changes: 17 additions & 0 deletions node_modules/.bin/mime.cmd

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

28 changes: 28 additions & 0 deletions node_modules/.bin/mime.ps1

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

Loading