Skip to content

C# group project: Reese, Katlin, Stuart and Brooke

Notifications You must be signed in to change notification settings

reese-lee/Assassin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Assassin

C# Group Project, 05.23.2019

By Reese Lee, Katlin Anderson, Stuart McKay, and Brooke Kullberg

Description

This is a website for the Assassin game.

Setup/Installation Requirements: Database

To download and import the database:

  • Start MAMP and click Open WebStart page in the MAMP window.
  • In the website you're taken to, select phpMyAdmin from the Tools dropdown.
  • Select the Import tab.
  • Note that it's important to make sure you're not importing to a database that already exists, so make sure that a database with the same name as the one you're importing isn't already present.
  • Select your database file, and click Go.

To make your own database in MySql shell:

  • CREATE DATABASE assassins;
  • USE assassins;
  • CREATE TABLE contracts (id serial PRIMARY KEY, game_id INT, assassin_id INT, contract_start DATETIME, contract_end DATETIME, is_fulfilled INT, weapon TEXT);
  • CREATE TABLE games (id serial PRIMARY KEY, team_name TEXT, password TEXT, is_start INT, is_end INT);
  • CREATE TABLE players (id serial PRIMARY KEY, is_alive INT, assassin_id INT, name TEXT, password TEXT, email TEXT, code_name TEXT, game_id INT, spoon_score INT, sock_score INT, phone_number TEXT, image_url TEXT, is_admin INT);

Setup/Installation Requirements: Program

  • Open via GitHub repository by going to https://github.com/BrookeZK/Assassin.
  • In your command line (Terminal or another program), navigate to your desktop.
  • In your command line, type "git clone https://github.com/BrookeZK/Assassin" to clone the repository to your desktop.
  • Open MAMP, or your equivalent. Start your servers. Navigate to the "Import" tab, and choose assassin.sql in the top level of the Assassin folder. Click "go" to import this database.
  • In your command line, navigate into the new folder "Assassin", then into the subfolder "Assassin".
  • Once inside "Assassin," type "dotnet run", and your terminal will inform you that the program is running on http://localhost:5000.
  • Finally, put the url http://localhost:5000 into your web browser and the program will open.

Specs - "Landing Page" - Index.cshtml

![SplashPage](Assassin/wwwroot/img/splash-screenshot.jpg?raw=true)

Behavior Input Output
Create a new game Click "Start a new game" redirected to new game instance create page
Create an account to play a game of assassin Click "Sign Up" redirected to join game view with game lobby authentication
Login to view your account details Click "Login" redirected to account authentication page
Review rules of the game Click "Rules of the Game" Taken to Rules page

Specs - "Rules" - Rules.cshtml

![SplashPage](Assassin/wwwroot/img/rules-screenshot.jpg?raw=true)

Behavior Input Output
No user interactability Required Effort Knowledge

Specs - "New Game" - Games/New.cshtml

![SplashPage](Assassin/wwwroot/img/newgame-screenshot.jpg?raw=true)

Behavior Input Output
Input new lobby group name and password and personal player information lobby name: -u Epicodus -p isgreat Player info: ... -CodeName Agent 007 New Game Lobby: Epicodus with one agent, Agent 007 as Admin

Specs - "Sign Up" - Players/New.cshtml

![SplashPage](Assassin/wwwroot/img/signup-screenshot.jpg?raw=true)

Behavior Input Output
Prompts user for game lobby name and password -u Epicodus -p isgreat Shows signup page
Allows player to create new agent for that specific game instance Name: Oliver K. Email: Olly@DoA.com Password: pa55w0rd ... Code Name: Bobbers Creates new Agent Bobbers in Epicodus game

Specs - "Login" - Login.cshtml

![SplashPage](Assassin/wwwroot/img/login-screenshot.jpg?raw=true)

Behavior Input Output
Input email and password to enter agent player portal Email: Olly@DoA.com Password: pa55w0rd returns Agent Bobber's player view

Known Bugs

  • URL security; any user can navigate through URLs into restricted views without any authentication given they know correct routing values
  • IsGameOver() with one player will never evaluated to true and end the game. There must always be (n > 1) players.
  • Using numbers as agent names confuses some of the Model references and will create infinite contract generation loops, resulting in an unwinnable game
  • End game accolades ignore ties for kill-count awards and will grab the first instance without a tiebreaker or split
  • Lots of missing authentication checks for form inputs throughout

Support and contact details

Should any problems occur, or any bugs discovered, please contact Brooke Kullberg at brookezkullberg@gmail.com

Technologies Used

_This program was written in C#/.Net with Entity Framework Core, using MVC and MySql.

License

This software is licensed under MIT license.

Copyright (c) 2019 Brooke Kullberg, Reese Lee, Katlin Anderson, and Stuart McKay

About

C# group project: Reese, Katlin, Stuart and Brooke

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 54.7%
  • C# 39.9%
  • CSS 5.1%
  • JavaScript 0.3%