Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
8f268d8
init
NobleKalish Sep 30, 2019
43c1a7b
init -2
NobleKalish Sep 30, 2019
ff18603
server
NobleKalish Sep 30, 2019
debf004
heroku test
NobleKalish Sep 30, 2019
56d7df0
gulp works
NobleKalish Sep 30, 2019
8edf82a
keyboard input
cbennet Sep 30, 2019
ad53bd6
more
NobleKalish Sep 30, 2019
c95ec45
started adding passport
kandonie Sep 30, 2019
74d382b
fixed merge conflict
kandonie Sep 30, 2019
9a8bb2d
bunde error
cbennet Sep 30, 2019
8309dc1
added a comma
kandonie Sep 30, 2019
6c630aa
multiple moving sprites
cbennet Oct 1, 2019
b7d09e6
leaderboard stuff
NobleKalish Oct 1, 2019
a6f2cfb
gitignore update
NobleKalish Oct 1, 2019
6ce4914
Merge pull request #1 from NobleKalish/noble
NobleKalish Oct 1, 2019
10e058a
movement updated
cbennet Oct 2, 2019
2c2b208
added sprite select
cbennet Oct 3, 2019
e5092a9
login and create user page
kandonie Oct 3, 2019
7461003
add jump
cbennet Oct 3, 2019
12c1267
edited some login stuff
kandonie Oct 3, 2019
6ae0c66
activeChar is now visible sprite
cbennet Oct 3, 2019
e623d5b
timer 60/sec
cbennet Oct 3, 2019
8b92329
cleaning
cbennet Oct 3, 2019
c544ca1
comment/clean
cbennet Oct 4, 2019
44382a7
gitignore
NobleKalish Oct 4, 2019
5b441a1
modified login page to include redirect to signup page
kandonie Oct 4, 2019
c7d6a76
css
NobleKalish Oct 4, 2019
1f0d596
added some db stuff; cannot get /login still happening
kandonie Oct 4, 2019
b4c5a3f
added sessions and flash
kandonie Oct 4, 2019
ba5d0ae
more css
NobleKalish Oct 4, 2019
438bb9a
authentication works yayyy
kandonie Oct 4, 2019
1aba297
collision detection and victory
cbennet Oct 5, 2019
3eaca69
Merge branch 'sprint' into kristen
NobleKalish Oct 5, 2019
25a21ac
Merge pull request #2 from NobleKalish/kristen
NobleKalish Oct 5, 2019
ff0e81c
merged w/ sprint
cbennet Oct 5, 2019
f9cefe4
Merge pull request #3 from NobleKalish/cooper
NobleKalish Oct 5, 2019
507bcf7
pixi only on index.html
cbennet Oct 5, 2019
dabd303
syntax
NobleKalish Oct 5, 2019
dbee449
Merge pull request #4 from NobleKalish/cooper
NobleKalish Oct 5, 2019
fe2db09
Merge branch 'sprint' of https://github.com/NobleKalish/fp into sprint
NobleKalish Oct 5, 2019
784f75a
deleted db
NobleKalish Oct 5, 2019
f111575
some fixes
NobleKalish Oct 5, 2019
4883f9e
Merge branch 'sprint' into css
NobleKalish Oct 5, 2019
b74847d
css
NobleKalish Oct 5, 2019
11f530c
remove time redirect
cbennet Oct 5, 2019
6773440
fixed final time
cbennet Oct 5, 2019
004e211
Merge branch 'sprint' into cooper
cbennet Oct 5, 2019
f9fad6a
Merge pull request #6 from NobleKalish/cooper
NobleKalish Oct 5, 2019
ba40f94
css
NobleKalish Oct 5, 2019
afe6ed8
Merge branch 'sprint' of https://github.com/NobleKalish/fp into sprint
NobleKalish Oct 5, 2019
7cc82a6
leaderboard stuff
NobleKalish Oct 8, 2019
32b60b3
timer works better now
NobleKalish Oct 9, 2019
109e604
leaderboard works
NobleKalish Oct 9, 2019
92b59b6
scrolling bg w/ turtles to dodge
cbennet Oct 9, 2019
2252562
Merge branch 'sprint' into cooper
cbennet Oct 9, 2019
ace06f3
Merge pull request #7 from NobleKalish/cooper
NobleKalish Oct 9, 2019
b7ec930
start on ground
cbennet Oct 9, 2019
a681649
fixed jumping
NobleKalish Oct 9, 2019
03be332
Merge pull request #8 from NobleKalish/cooper
NobleKalish Oct 9, 2019
4503b2d
looks slightly better
NobleKalish Oct 9, 2019
4c36f66
looks better
NobleKalish Oct 9, 2019
5d5afdb
init
NobleKalish Oct 9, 2019
1dd8267
fix
NobleKalish Oct 9, 2019
8fd30c7
speed
NobleKalish Oct 9, 2019
b98a608
quickfix
NobleKalish Oct 9, 2019
61c762b
trying again
NobleKalish Oct 9, 2019
4d14122
try again
NobleKalish Oct 9, 2019
35be268
fix
NobleKalish Oct 9, 2019
f4307f1
leaderboard fix
NobleKalish Oct 9, 2019
85183f2
im dumb asl
NobleKalish Oct 10, 2019
78168ec
Merge branch 'sprint' into newIdea
NobleKalish Oct 10, 2019
602e666
more fixes and stuff
NobleKalish Oct 10, 2019
7bfbd7f
more levels
NobleKalish Oct 10, 2019
c097088
time fix
NobleKalish Oct 10, 2019
245a939
README fixes
NobleKalish Oct 10, 2019
b8e16ad
finished readme except for challenges section
kandonie Oct 10, 2019
e9bb4c4
finished readme
kandonie Oct 10, 2019
677c9b1
i gave the game a really dumb temp name before so I just changed it t…
kandonie Oct 10, 2019
75eb3c3
Update README.md
cbennet Oct 10, 2019
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
94 changes: 94 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# Created by .ignore support plugin (hsz.mobi)
### Node template
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-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/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

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

# next.js build output
.next

# nuxt.js build output
.nuxt

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

.idea/*
package-lock.json
my_db/*
25 changes: 25 additions & 0 deletions Gulpfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
const gulp = require('gulp');
const source = require('vinyl-source-stream');
const browserify = require('browserify');
const babelify = require('babelify');


const build = function () {
'use strict';
return new Promise(function (resolve, reject) {
browserify({entries: ['./public/index.js', './public/pixiBasic.js']})
.transform("babelify", {presets: ["@babel/preset-env"]})
// create Node.js stream using browserify output
.bundle()
// add Vinyl meta-data to Node.js stream, in this case
// the name of the file we're streaming
.pipe(source('bundle.js'))
// output file to dist folder
.pipe(gulp.dest('./public'));
resolve();
});
};

// 'default' task runs whenever we call 'gulp' on the
// command line with no arguments
gulp.task('default', gulp.series(build));
80 changes: 29 additions & 51 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,29 @@
# cs4241-FinalProject

For your final project, you'll implement a course project that exhibits your mastery of the course materials.
Similar to A4, this project gives you an opportunity to be creative and to pursue individual research and learning.

## 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.
- Server-side programming *using Node.js*. Typically this will take the form of some sort of persistent data, authentication, and possibly server-side computation.

Additionally, you should incorporate features that you independently research, design, and implement for your project.

## Project ideation

Excellent projects 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. Consider creating something useful for a cause or hobby you care about.

## Logistics

### Team size
Students are encouraged to work in teams of 2-5 students for the project. This will allow you to build a good project without expending an excessive amount of effort. While I would expect a team of four or five students to produce a project with more features, I expect a every team's work to exhibit all of the required facets described above.

### Deliverables

__Proposal:__
Provide an outline of your project direction and the names of the 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.
This file must be named proposal.md so we can find it.
Submit a PR to turn it in by Monday, September 30th, before class

There are no other scheduled checkpoints for your project.
You must be done in time to present before the final project demo day (October 10th).

#### Turning in Your Outline / Project

**NOTE: code is due before the project presentation day due to the end of term / grading schedule constraints**
Submit a second PR on the final project repo to turn in your app and code.

Deploy your app, in the form of a webpage, to Glitch/Heroku/Digital Ocean or some other service.
Folks on the same team do not need to post the same webpage, but must instead clearly state who is on the team in their proposal.
(Staff will use the proposal to build the grading sheet.)

## Final Presentation

Presentations will occur during the final day of class.

## 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.
### CS4241 Final Project

**Description**
We created a jumping character game where the user can select one of two characters to control and the goal is to avoid obstacles. Our game features login authentication and a leadership board.
Our project can be accessed at https://fp-noblekalish-cbennet-kadonie.glitch.me

**Additional Instructions**
To play the game, the user will need to create an account. Simply choose any username and password and use them to login. Then follow the instructions on the screen to play.

**Technological Achievements**
- node js server: made a server using express
- express middleware packages: used many packages, including helmet and compression
- gulp: made a gulpfile as a pipeline for managing front-end tasks
- css: embedded style into html views
- pixi js: used pixi to render sprites and animate the scene with a refresh rate of 60 fps
- passport local strategy: used local strategy middleware package to let users create accounts

**Challenges**
What challenges you faced in completing the project.
- getting passport authentication to work with multiple html views and adding user accounts to database was tricky
- if you selected a character twice it would have two timers
- making game scene borders was tricky with the sprite images
- embedding background image
- we were going to use heroku but because none of us had figured out how to use it by the final project we decided to go with glitch and used pouchdb database instead of heroku's sql integration

**Work Distribution**
- Noble: Set up project with node js server and gulp pipeline; created leadership board; added CSS design to the scenes; set up pouchdb database
- Cooper: Created movable sprites that interact with each other; set up background images and game borders; set up game timer
- Kristen: Created login and sign up pages with passport authentication; set up sessions with user accounts added to pouchdb database
32 changes: 32 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"name": "fp",
"version": "1.0.0",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"body-parser": "^1.19.0",
"compression": "^1.7.4",
"connect-flash": "^0.1.1",
"express": "^4.17.1",
"express-session": "^1.16.2",
"helmet": "^3.21.1",
"i": "^0.3.6",
"pixi.js": "^5.1.5",
"passport": "^0.4.0",
"passport-local": "^1.0.0",
"pouchdb": "^7.1.1",
"pouchdb-upsert": "^2.2.0"
},
"engines": {
"node": "10.x"
},
"devDependencies": {
"@babel/core": "^7.6.2",
"@babel/preset-env": "^7.6.2",
"babelify": "^10.0.0",
"browserify": "^16.5.0",
"gulp": "^4.0.2",
"vinyl-source-stream": "^2.0.0"
}
}
Loading