GithubHelp home page GithubHelp logo

vandysolitaire's Introduction

CS 4288: Web-based System Architecture

Programming Assignment 6

Overview

This is it! In this assignment you will get to functional web-based Klondike Solitaire application. Let's get started...

On the Derby Day your application will be evaluated by a number of other students in class. Your application will earn points based on its capabilities (see below).

  • 30% of your grade will be awarded based on a manual code review by the instructor
  • 70+% of your grade will be based on the Derby Day peer review
  • It is possible to earn more than 100% of the points
  • You are free to change, add or remove any code within your application. All reused code (not recorded into package.json) must be attributed

Here are the places to earn (or lose) points:

  1. (30 points - mandatory) Instructor code review. Is it clean, well-structured, modular code.

  2. (20 points - mandatory) You need to deploy. It must be publicly available on the general internet (not just on Vandy campus). The IP address must not change for the 3 days prior to the Derby and during the entire Derby Day. This means AWS is an excellent option, but not the only one.

  3. (10 points) Enable modification of a user's profile. Must be saved back to the DB and viewable immediately by anyone else the going to the user's profile page and within the user's own header component.

  4. (10 points) Fully working "results" page. Must display information for every move in a game.

  5. (30 points) If results page is fully working (see above), additional points can be earned if each move is click-able and renders the state of the game after the completion of the clicked move. Game does not need to be playable from that rendering.

  6. (10 points) Employ HTTPS with a CA issued certificate. Must not pop any warnings or errors on users' Chrome browser.

  7. (40 points) Register and log in via Github. Offer users the ability register and login using the Github OAuth mechanism discussed in class. You must never directly ask the user for their username, password, or any other information. It must all be pulled from Github.

  8. (40 points) Autocomplete button. Will play all valid moves from the piles to the stacks. Must send (and validate) each move to the server. Should be clickable at any time as long as there are valid moves.

  9. (10 points) Recognize end of game, i.e. that there are no moves from piles to the stacks and that there are no useable moves from the discard pile to the stacks. This recognition may miss rearrangements of the piles that would result in new moves becoming available. So, if end-of-game is recognized, prompt user if they want to end game.

  10. (10 points) Infinite undo/redo. Two UI buttons that let the user undo all moves back to the start of the game. This will require new REST API endpoints to properly handle game state. The redo stack should always be cleared if the user plays a new move.

  11. (-10 points) Game not playable. You had to implement all of the gameplay mechanics for Assignment 5, so this should be solid.

  12. (-10 points) Console is spewing any errors or warnings. I like it clean people!

Super Bonus Points

  • 10 points - Awarded to the one most attractive application as voted on by the other students. A tie will split the points.

  • 10 points - Awarded to the one student with the smallest client JS bundle (/public/main.js). A tie will split the points

Submission:

You must still commit your code to your repo by the start of class on Derby Day. Failure to do so will result in the loss of the 30 points from code review. Failure to publicly host the application during the Derby will result in the loss of 70+% of your points. You have to make this happen.

vandysolitaire's People

Contributors

skidush622 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.