Giter Site home page Giter Site logo

christian-qa / redfern-dnd-website Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 7.28 MB

A visual interface for a Dungeons and Dragons scenario as part of my individual project

License: MIT License

Java 78.06% HTML 9.18% TSQL 1.52% CSS 4.10% JavaScript 7.15%

redfern-dnd-website's Introduction

Christian-QA

redfern-dnd-website's People

Contributors

chrisctr avatar christian-qa avatar

Stargazers

 avatar

Watchers

 avatar  avatar

redfern-dnd-website's Issues

Create Backend API Calls for Abilities

As a player, I want my character to have ability stats so that I can play Dungeons and Dragons. Abilities are a core mechanic which must be included in any Dungeons and Dragons Homebrew scenario.

Priority: Must
Story Points: 5

  • Create Abilities Domain
  • Create Abilities Repo
  • Create Abilities Service
  • Create Abilities Controller
  • Create Abilities Exception

This will be ManyToMany

GET Axios

As a user, I want a character sheet to read as it is needed to play Dungeons and Dragons.

Priority: Must
Story Points: 3

Get GET Axios command to work for the character sheet

Won't

Approx Story Points: 50+

  • Implement all of the features of the old Mesa's App Lab application this application was derived from.

  • Quality of life features relying on beta testing and multiple play sessions.

CI Pipeline/SonarQube

As a developer, I want to have access to a technology which analyses my code for me and gives feedback on my coding practices. It would also be good to have this same technology run my tests to provide coverage data for both integrated testing and as a number to put on my README

Priority: Must
Story Points: 1

Link CI Pipeline to SonarQube

Selenium Tests

As a developer, I want there to be tests for the frontend so that I know the browser has sufficient coverage as I don't feel relying on static testing entirely is a good idea.

Priority: Should
User Stories: 4

  • Create selenium tests covering index.html page
  • Create selenium tests covering the character.html page
  • Create selenium tests covering any interaction between the index.html and character.html page to identify any discrepancies

Create Project

As a user, I want a web application which can be used as an interface for a homebrew Dungeons and Dragons scenario. This must implement a back-end, a front-end and a database to achieve everything it needs to in an effective way.

Priority: Must
Story Points: 1

Create Java Maven/Spring Project on IntelliJ

Create object storing shared setters and getters for Domain/DTO

As a player, I want to be able to save and load my character details and progression in some way, shape or form so that I can play a game spanning more than one session. This can be achieved using a GCP MySQL database, but needs a functioning backend with API Calls.

Priority: -
Story Points: 3

  • Character
  • Skills
  • Abilities

Create Backend API for Class

As a player, I want my character to have a class to give them a path of progression unique to them as it's important to most Dungeons and Dragons scenarios.

Priority: Should
Story Points: 5

  • Create Class Domain
  • Create Class Repo
  • Create Class Service
  • Create Class Controller
  • Create Class Exception

This will be OneToMany/ManyToOne

Latest ERD avaiable

As a developer, I want the most up-to-date version of the ERD available, with the naming conventions, tables and columns present to be exactly the same as what's in the project, as this will allow less 'figuring things out'.

Priority: Should
Story Points: 1

Update ERD to fit continuously integrated features which weren't planned in the initial stage of development

Create GCP Instance

As a player, I want my character data to be stored on the cloud so that I don't have to worry about locally saved data and which device I am using as doing so would be too much hassle. Also, local device failure could ruined the Dungeons and Dragon scenario, which may last a long time, meaning a lot of progress could be lost.

Priority: Must
Story Points: 1

Create GCP Instance for MySQL Database

Create Tests for Skills Classes

As a developer, I want to make sure my class works so that players don't encounter bugs without doing something they obviously shouldn't be doing, and even then it should be prevented if possible.

Priority: Must
Story Points: 3

  • Unit Tests for Service

  • Unit Tests for Controller

  • Unit Tests for the other classes

  • Integration Tests for Service

  • Integration Tests for Controller

  • Integration Tests for the other classes

Add default values to database

As a user, I want to be able to create a character without manually setting my hp, exp, etc. as trying to do so at this point would throw an error.

Priority: Could
Story Points: 1

Add default values to specific database columns:

  • Max Hp (Character Sheet)
  • Current Hp (Character Sheet)
  • Exp (Character Sheet)
  • Full Proficiency (Skills)
  • Strength (Abilities)
  • Dexterity (Abilities)
  • Constitution (Abilities)
  • Intelligence (Abilities)
  • Wisdom (Abilities)
  • Charisma (Abilities)

Must

Approx Story Points: 100

  • A Kanban board with full expansion on user stories and tasks needed to complete the project. It should also provide a record of any issues or risks that you faced creating your

  • A relational database, located within the Cloud, which is used to persist data for the project. This database must contain at least three entities, and must be modelled using an ERD.

  • A functional application ‘back-end’, written in the language that you have covered during training, created following OOP principles and best practice, that meets the requirements set on your Kanban board. This application must be modelled using using UML.

  • A functional ‘front-end’ website (and integrated APIs) which connect to your back-end.

  • Fully designed test suites for the application you are creating, as well as automated tests for validation of the application. You must strive to achieve industry-standard (80%) test coverage through both unit and integration

  • Code fully integrated into a Version Control System, which will subsequently be built through a CI server and deployed to an artefact repository manager and/or a Cloud-based virtual machine.

  • Character Sheet Interface, Database Table, API calls and full functionality operational

  • Skills Sheet Interface, Database Table, API calls and full functionality operational.

  • Abilities Sheet Interface, Database Table, API calls and full functionality operational.

  • A readable front-end with full functionality of the above features from the player's perspective.

ERD

As a developer, I want access to a diagram which provides visual representation for the database and the tables it contains so that I can gain an understanding of how the tables interact quickly.

Priority: Must
Story Points: 2

Create ERD Diagram

Project Repository

As a developer, I'd like a place to store and control my project and subsequent versions, with the ability to switch between branches for safer implementation of new features, so that I can revert to a previous version of my project in the event something goes wrong.

Priority: Must
Story Points: 1

Create project repository on GitHub

Should

Approx Story Points: 200

  • ActionList Sheet Interface, Database Table, API calls and full functionality operational.

  • Class Sheet Interface, Database Table, API calls and full functionality operational.

  • Inventory Sheet Interface, Database Table, API calls and full functionality operational.

  • Race Sheet Interface, Database Table, API calls and full functionality operational.

  • A stylised index and character page.

  • Quality of life features relying on manual testing.

Create Backend API Calls for CharacterSheet

As a player, I want to have a character sheet which stores all my data and acts as the meta to a series of other data sources which store everything I need to play the Dungeons and Dragons scenario, from skills to inventory.

Priority: Must
Story Points: 8

  • Create CharacterSheet Domain
  • Create CharacterSheet Repo
  • Create CharacterSheet Service
  • Create CharacterSheet Controller
  • Create CharacterSheet Exception

This will be the main centre point of all tables barring User.

Plan tables for database

As the project manager, I'd like a plan of what needs to be done so that I'm not blindly developing features.

Priority: Must for core tables. Consult ERD for the priorities of other tables.
Story Points: 1

  • User Table - to link characters to a user. This will be no more than an id and a username at first.
  • Character Table - Name, HP, EXP
  • Skills Table - All skills
  • Abilities Table - Where ability points are stored
  • Item Table - Where every item is stored
  • Action Table - Where every action is stored

Create Tests for Ability Classes

As a developer, I want to make sure my class works so that players don't encounter bugs without doing something they obviously shouldn't be doing, and even then it should be prevented if possible.

Priority: Must
Story Points: 3

  • Unit Tests for Service

  • Unit Tests for Controller

  • Unit Tests for the other classes

  • Integration Tests for Service

  • Integration Tests for Controller

  • Integration Tests for the other classes

Solve Commit Issues

As a developer and user, I want all the project files present as I don't see the point in working with a version where things are missing.

Priority: Must
Story Points: 1

Issues with VSC not auto committing led to work being lost. Time will need to be delegated to search through the files to spot what's missing.

DELETE Axios

As a user, I want to be able to delete character sheets as I may not want to use them again

Priority: Must
Story Points: 3

Get DELETE Axios command to work for the character sheet

GCP MySQL Instance Up

As a player, I want to be able to store my character somewhere so that I can use my character for more than one session, rather than having to keep remaking the character each time I play. A Dungeons and Dragons application without this functionality is pointless as very few scenarios last just one session.

Priority: Must
Story Points: 6

Create JDBC and link the Java application to the GCP MySQL instance

PUT Axios

As a user, I want to be able to update my character sheet as Dungeons and Dragons revolves around long-term progression

Priority: Must
Story Points: 3

Get PUT Axios command to work for the character sheet

CI Pipeline

As a developer, I want access to a platform which can enable continuous integration, and can send it to over DevOps technologies for me i.e. SonarQube. This will allow for more passive, continuous testing and a more agile approach to development. Also, it's very quick and easy to setup, a true gift given how useful CI Pipelines are.

Priority: Must
Story Points: 1

Create a CI Pipeline for the project on Jenkins

Create ReadME

As a LITERALLY ANYONE, I want access to a manual which provides all the details I'll ever need to use the application, both as a user and a developer.

Priority: Must
Story Points: 4

Create a README and post it to my GitHub project repository

Create Tests for Character Classes

As a developer, I want to make sure my class works so that players don't encounter bugs without doing something they obviously shouldn't be doing, and even then it should be prevented if possible.

Priority: Must
Story Points: 6 (higher than the other test-related stories because things relation to the CharacterSheet domain are done first)

  • Unit Tests for Service

  • Unit Tests for Controller

  • Unit Tests for the other classes

  • Integration Tests for Service

  • Integration Tests for Controller

  • Integration Tests for the other classes

Create Backend API Calls for Skills

As a player, I want my character to have a skillset so that I can play Dungeons and Dragons. Skills are a core mechanic which must be included in any Dungeons and Dragons Homebrew scenario.

Priority: Must
Story Points: 5

  • Create Skills Domain
  • Create Skills Repo
  • Create Skills Service
  • Create Skills Controller
  • Create Skills Exception

This will be ManyToMany

Add loading wheel-like system

As a player, I want it so the character details don't appear late so that I don't witness jank.

Priority: Could
Story Points: 1

Add loading screen to hide as character details are loaded in

IntelliJ Database Feature

As the project manager, I want to be able to create, read, update and delete from IntelliJ so that I can better understand how the code I'm developing works with the database. Essentially, it's a method for learning how the front-end, back-end and database works together.

Priority: Should
Story Points: 1

Set up console in IntelliJ for running MySQL statements locally rather than on GCP

Create Backend API for Actions

As a player, I want my character to have actions they can use throughout the campaign which are added over time and allow for more versatile gameplay as it's important to any Dungeons and Dragons scenario.

Priority: Should
Story Points: 5

  • Create Actions Domain
  • Create Actions Repo
  • Create Actions Service
  • Create Actions Controller
  • Create Actions Exception

This will be ManyToMany

PATCH Axios

As a user, I want to be able to insert skills into my character sheet after I've made the character as skills in-game came be attained over time.

Priority: -
Story Points: 3

Get PATCH Axios command to work for the character sheet

Create Backend API Calls for Users

As a player, I want my character to be tied to my own account so that the character is mine and no one else's as I don't want other people changing the character I'm using.

Priority: Could
Story Points: 5

  • Create Users Domain
  • Create Users Repo
  • Create Users Service
  • Create Users Controller
  • Create Users Exception

Create database for tests

As a developer, I want it so that tests don't effect entries in the database I'm using as doing otherwise could result in data lost.

Priority: Must
Story Points: 1

Create new database for tests on either H2 or GCP

Risk Assessment

As the project manager, I want to know the risks going into the project which could result in failure if not managed or avoided so that the development of the project can be completed without issue. This is also priceless as a retrospective piece

Priority: Must
Story Points: 1

Create a Risk Assessment

Could

Approx Story Points: 250

  • Link each character to a user so that it is unique to them rather than shared to every user. This will require:
  1. A database table with a username and a
    password.
  2. Have a login system on the frontend
    which utilises said database table.
  • All webpages planned included in the project besides index and character, including:
  1. About
  2. Contacts
  3. Campaign Table
  4. Login
  • Quality of life improvements relying on user feedback.

Fix Skill Table/Character Table link

As the project manager, I want the skill table to work without calling an error and claiming the character_sheet (id) in skills is null, as this needs to be fixed to implement the skills table.

Priority: Must
Story Point: 2

All tests for the skills table need to work again

Schema

As a developer, I want a schema for the purpose of quick (both manual and automated) creation of the same table as it would boost my workflow and is a requirement for most JDBC projects

Priority: Must
Story Points: 2

Create mesadnd schema

GCP Cloud Server

As a user and a developer, I want the backend to be on the cloud so that it doesn't rely on a local host connection.

Priority: Must
Story Points: 4

Create GCP virtual machine to contain the project

Styling

As a user, I want the website to be uniquely stylised as I probably won't be interested in an eyesore.

Priority: Could
Story Points: 8

Add assets and stylised the website to make it appealing.

ManyToMany Conversion

As a user, I want to be able to retrieve skills from a database rather than make a skill each time I want to add it to my character. The same applies for Abilities.

Priority: Must
Story Points: 2

Change Ability and Skill connection to CharacterSheet from a OneToMany to a ManyToMany

Create Backend API for Race

As a player, I want my character to have a race to add to character diversity as it's important to most Dungeons and Dragons scenarios.

Priority: Should
Story Points: 5

  • Create Race Domain
  • Create Race Repo
  • Create Race Service
  • Create Race Controller
  • Create Race Exception

This will be OneToMany/ManyToOne

Create Backend API for Inventory

As a player, I want my character to have some way of storing items collected during the campaign as items are important to the Dungeons and Dragons game.

Priority: Should
Story Points: 5

  • Create Inventory Domain
  • Create Inventory Repo
  • Create Inventory Service
  • Create Inventory Controller
  • Create Inventory Exception

This will be ManyToMany

Make JSON for Skills

As a developer, I want the skills to preload into the project as having to keep remaking them is a hassle. Also, the skills are predetermined and will never change throughout the development cycle unless it is to improve the scenario, which isn't important until the beta stages of the project.

Priority: Could
Story Points: 2

Create a JSON file containing every skill to be preloaded into the project

CI Pipeline/Artifact Repository

As a developer, I want to be able to conduct continuous integration and store my project in an artifact repository, so that I have a target to deploy artifacts generated in the build process and store artifacts needed for future builds.

Priority: Must
Story Points: 1

Link Jenkins to Nexus Repository

GCP App Engine

As a user, I would like for the application to be hosted on GCP as I don't want to need to involve myself with the server side.

Priority: Should
Story Points: 3

Deploy application to GCP App Engine

Create Skills List

As a user, I want to be able to view all of my skills in one place as it will be more convenient for me as a player.

Priority: Should
Story Points: 2

Create a list of skills which can be displayed on the web page.

POST Axios

As a user, I want to be able to make character sheets as that is the main selling point of the application.

Priority: Must
Story Points: 3

Get POST Axios command to work for the character sheet

Add dependencies to pom.xml which are confirmed to be required moving forwards

Initial Pom Dependancies

As a developer, I want access to numerous vital technologies to allow for a smooth start to my development. These will be subject to change, namely moving from H2 to MySQL, but it is important to start small and think big rather than think big and squander my time on hopeless pursuits.

Priority: Must
Story Points: 1

  • Spring Framework
  • H2 Database
  • JUnit
  • TestNG
  • Selenium
  • Apache Maven
  • Relevant Codes
  • Commons.io

Fix test issues with Maven and Jenkins

As a developer, I want to be able to run tests on SonarQube as it is more reliable for coverage than the IDE.

Priority: Should
Story Points: 2

Fix issues with Maven and Jenkins where the build cannot find test.properties, causing the tests to fail.

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.