Code Monkey home page Code Monkey logo

sustain's People

Contributors

chriscalloway avatar mcupery avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

juliodesa mcupery

sustain's Issues

M3 - Model Changes

Story/Task Details

Since the customer's request is to add information to the Student, we can focus on the Student class.

  • To support the class standing, we will first need to create a new class named ClassStanding which is an enum with the values FRESHMAN, SOPHOMORE, JUNIOR, and SENIOR. Give each class a two character representation "FR", "SO", "JR" and "SR".

  • Now add an attribute to Student which holds the ClassStanding enum.

  • Add getter and setter for the ClassStanding

  • Make a new 3 param constructor which includes name, major and class standing. Keep the old two param constructor for backwards compatibility and use constructor chaining to give a default class standing of Freshman.

  • Change the toString method to contain the class standing also.

  • At this point the model should be runnable and we should see the changes reflected in the list. Go ahead and run the app at this point. You should see all the students listed as before except with their classes shown. If you don't see the classes, be sure your constructor chaining is passing the freshman value to the 3 param version. Also be sure you added the class standing to the toString method.

Done Done Criteria (Grading)

  • enum for ClassStanding ....................................10
  • attribute added in Student ................................05
  • getter/setter .............................................10
  • new constructor ...........................................05
  • toString ..................................................05
  • data validation (if required) .............................10 (constrained inputs get points automatically)

M5 - 'Edit Profile' Screen

Story/Task Details

  • Allow user to change personal information such as email, address, etc

Acceptance Scenarios

  • Given: A user is logged in
  • When: The user clicks the "Edit Profile" button
  • Then: The user can change their personal information, such as email, address, etc

Done Done Criteria (grading)

  • User profile edited

M6 - List of All Reports

Story/Task Details

  • Have a screen where you can view all the existing reports

Acceptance Scenarios

  • Given: The user is logged in
  • When: The user clicks the "View Water Reports" button
  • Then: The user can see a list of all water reports

Done Done Criteria (grading)

  • List of reports can be viewed

M3 - Submit Project

Story/Task Details

Congratulations you have edited a full stack MVC app. You also caught a glimpse of the life of a maintenance programmer. Most of you will not work on new applications, you will work on established products to add new features, just like we have done here.

  • Zip up your complete project directory and submit to the assignment listing on T-Square.

Done Done Criteria (Grading)

M6 - Submit Water Reports

Story/Task Details

  • Be able to navigate to 'Submit Water Report' Screen

  • Have input screen where information is captured from user

  • Store the information in the model once the 'Submit' button is pressed

  • Have a 'Cancel' button where nothing is stored

Acceptance Scenarios

  • Given: The user is logged in
  • When: The user clicks on 'Submit Water Report' Screen
  • Then: The user can fill out information about their water report and either submit it or cancel

Done Done Criteria (grading)

  • Can navigate to submit report functionality
  • Report screen enters all required information
  • After submission, report is stored in the model
  • 'Cancel' does not save report
  • Report number auto-assigned by system

M3 - View Changes

Story/Task Details

  • Now you will need to add some widgets to the view so that when adding a new student, you can get the class standing from the user. Open the StudentEditDialog.xml file.

  • You will see that the dialog is laid out in a grid layout with labels and input fields. You will need to add to the grid some way to input the class standing. I used a combobox, but 4 radio buttons would work. You could use a text field and type in the standing, but that is error prone and you would need to validate that an incorrect entry was not made.

  • Now you should be able to run the app again, just to make sure everything is ok. You should be able to hit the add student button and your dialog should pop up with your new UI features showing. It wont actually do anything yet, and if you used a combobox like me, it won't have any values in it. To make the display actually work, we have to edit one more class, the controller.

Done Done Criteria (Grading)

  • widget added to dialog ....................................15
  • list shows required info...................................05
  • student added is in list...................................10
  • dialog displays required default information ..............10

M2 - Git Setup

Story/Task Details

  • Initialize new Git repository, call it "repository".
  • Import unzipped files from M2.zip resource. This involves adding, committing, and pushing these files as a new project named M2.
  • Create a branch called "original".
  • Ensure each team member has cloned the project M2.

Notes:

  • Make sure that the original remains unmodified and that changes to the branch are done on the main (master) branch.

  • Ensure that the .jar (that is the resources.jar file in the lib directory) is on the class-path for compilation and execution.

Done Done Criteria (grading)

There appears to be no grading criteria for this.

Registration

Story/Task Details

  • Task 1
    TO get the registration page completed

  • Task 2
    Add the registration screen to your app. A new user should be able to register by entering their information (like name, id, and password). If accepted, the new user should be added to the system. If cancelled, the user should not be added.

  • Task 3

  • Task 4

Acceptance Scenarios

  • Given:
  • When: March 24, 2017
  • Then:

Done Done Criteria (grading)

  • []
  • []

M7 - Google Map Display

Story/Task Details

  • Navigation option to show water availability screen

  • Map displays

  • Pins are on map at each report location

  • Selecting a pin shows details of the report

Acceptance Scenarios

  • Given: I am a user
  • When: I open the the "View Map" screen
  • Then: I can see all the pins on the map and selecting the pin shows details of the reports

Done Done Criteria (grading)

  • Previous functionality still works
  • Navigation option to show water availability screen
  • Map displays
  • Pins are on map at each report location
  • Selecting a pin shows details of the report
  • Javadocs and code style, Design Discussion

Google Map

Story/Task Details

  • Task 1
    Show that previous functionality still works.
    Provide a way to navigate to the water availability screen.
    Display a map
    Place pins at the locations of each report
    Show report details for a pin when it is selected by the user

  • Task 2

  • Task 3

  • Task 4

Acceptance Scenarios

  • Given:
  • When: April 1
  • Then:

Done Done Criteria (grading)

  • []
  • []

M2 - Editing and Committing Files

Story/Task Details

  • Each team member choose one file in the src directory to work on (files will be located in edu.gatech.cs2340.antlab.person package). Be sure each person has their own file and no one is sharing a file.

  • Each team member completes the required method for their file. See the javadoc comment for instructions on what to do.

  • Each team member commit their changes and push back to git.

  • Each team member edits the edu.gatech.cs2340.antlab.pkg1.AntLabMain.java at the line indicated. This is adding in the name of the constructor in the java class edited previously.

  • The team members will need to work through any git merge conflicts that might ensue.

Done Done Criteria (grading)

There appears to be no grading criteria for this.

M3 - Controller Changes

Story/Task Details

Now make the view cooperate with the model. To do this, add items to the StudentEditController class (since this is the controller for our view).

  • Add an @FXML reference to the widgets you added for class standing. This is how you will pull data out of the widget to pass to the model. Be sure the spelling for the fxid matches what is in the .fxml file exactly.

  • Edit the initialize method to handle any start up code you need. If you used a combobox like me, this is where you will populate the box with the different classes (Freshman, etc). Remember that calling values() on an enum will give you an array. You will need to wrap this in an ObservableList. I made a static helper function that did that for me in the model.

  • Edit the setStudent method to set your widget to a default value

  • Edit the OK button press to pull the information out of your new widget and put into the student instance.

  • If you used a free text entry field, you will need to edit the isInputValid method to check that a valid class was entered. If you used a constrained widget like radio buttons or combo box where it is impossible to enter a bad value, then you do not have to do any validation.

Done Done Criteria (Grading)

  • dialog updates model ......................................15
  • data validation (if required) .............................10 (constrained inputs get points automatically)

M4 - Create Android Project

Story/Task Details

  • Create your team's Android Project and Import into Git

Done Done Criteria (grading)

  • Android project is created and launches .... (5)

M8 - Worker Quality Report

Story/Task Details

  • Have a way to navigate to the water quality report screen

  • Ensure only workers/managers can access report screen

  • Ensure screen requests all required information

  • Cancel screen should not save data

  • Save should record report in the model

  • Manager should be able to view the list of quality reports

Acceptance Scenarios

  • Given: I am a Manager/Worker
  • When: I click on the "Water Quality Report" screen
  • Then: I can see a list of quality reports

Done Done Criteria (grading)

  • Previous functions work
  • There is a way to navigate to the quality report input screen
  • The input screen requests all required information
  • Report number auto-generated by system
  • Submit stores the report in the model
  • Cancel does not store the report
  • Manager can view a list of the quality reports
  • Javadoc and code design

M4 - Logout

Story/Task Details

  • Once in the application, there should be a way to logout. After logging out, the application should return to the welcome / opening page.

Acceptance Scenarios

  • Given: The user is currently logged into the application
  • When: the user clicks the Log Out button
  • Then: the user is logged out and the application goes back to the Welcome screen.

Done Done Criteria (grading)

  • Logout functions correctly (5)

M2 - Add and Remove Files

Story/Task Details

  • Each team member should add a text file to the top level directory labeled readme.pn.txt where the pn would be p1, p2, p3, p4 or p5 based upon which person you are for the lab. The contents of the file can really be anything, but should include your name and email.

  • Each team member should delete the text file useless.pn.txt where pn is p1,p2, p3, p4 or p5 based on your team member number. Do NOT delete the wrong files!!

  • Roll back changes by viewing your original branch from an earlier step. Verify that none of the changes you have made are in the project version you checked out.

  • View Git logs. You can do this on GitHub by viewing the blame and graphs provided

  • View a diff between two versions of a file

Notes:

Use good descriptive Log comments for your changes/commits

Done Done Criteria (grading)

There appears to be no grading criteria for this.

M4 - Login

Story/Task Details

  • Create an opening or welcome screen which has options for Login and Registration. You may have some other method of differentiating login and registration, if you do not want an opening screen.
  • If someone selects Login, then you should display a way to enter the user name and password.
  • If someone requests login, you should check for the correct user name and password. For this first milestone, you may have a hard coded user with name "user" and password "pass" to check against.
  • If the login matches user name / password then go to your application. Otherwise, notify of the bad login attempt.
  • Canceling the login (press Cancel or going back a screen for example) will close out the login attempt , but no information is recorded and the application does not start up. Note here you are not explicitly required to have a cancel button, just a way to back out of the login.

Acceptance Scenarios

  • Given: the user enters a username and password and selects Login
  • When: the username/password combination is not a match
  • Then: the user is denied access to the application

Done Done Criteria

  • Welcome screen displays (or alternative).... (5)
  • Welcome screen (or alternative) has controls for login or registration .... (5)
  • Selecting login brings up screen to enter information .... (5)
  • Screen displays fields for inputting user name and password .... (5)
  • Login/Cancel(abort login) has appropriate action (10)

M3 - Running the App

Story/Task Details

  • Go to Assignment 3, and download the M3.zip file. Extract the file into your IDE project directory. If using Intelli-J, I have included my idea files so you can import the project. If using a different IDE, or coding from the command line, simply import the code files.

  • If you run the project, it should build and execute normally. You should be able to add a student and see the list update.

Notes:

  • If you examine the project view, you will see there are packages for model, view, and controller.

Done Done Criteria:

  • Run the project, add student, and see the list update.

History Graph, Persistance, and COntracts

Story/Task Details

  • Task 1
    Provide a way to select saving and loading of system data
    Persist (save) the data (serialization, custom text, etc.)
    Restore (load) previously saved data
    Manager can see option for showing the historical purity report
    System prompts the manager for setup information for the report
    System displays the XY graph with the information

  • Task 2

  • Task 3

  • Task 4

Acceptance Scenarios

  • Given:
  • When: April 10, 2017
  • Then:

Done Done Criteria (grading)

  • []
  • []

M2 - Build Files

Story/Task Details

  • Each individual team member will create a build file using gradle that will allow you to perform key tasks to build the application. Name your file with your gtid.gradle for instance: gburdell3.gradle

  • Store your file in the repository,

  • Each team member should install Gradle onto their machine. Instructions are in the gradle manual at: external link: http://www.gradle.org/

  • Each team member will need to create an executable jar for the project. To do that, each team member will need to create a manifest. If unfamiliar with manifests, then see the official tutorial at: external link: http://docs.oracle.com/javase/tutorial/deployment/jar/

Notes:

  • To run gradle with your file (build.gradle is the default if no file specified) use the -b option, for example: gradle -bgburdell3.gradle
  • The manual and documentation on the gradle site covers most of the features of gradle. For this lab, we will only be using the most basic of Gradle features and the Java plugin.
  • The application you are building also uses packages. You will need to understand how to use packages, as all professional Java projects use them extensively. Again, if you unfamiliar with packages, see the official tutorial at: external link: http://docs.oracle.com/javase/tutorial/java/package/index.html

Required:

Your build file should support the following tasks:

compileJava      compiles and builds the project
compileTest      compiles the unit tests for the project
javadoc          creates the html documentation for the project
clean            removes all the files created by this project
jar              creates the executable jar file for this project

The jar task should be the default if no task is designated when running gradle. Otherwise, gradle will execute the task you request, for example: gradle compileJava will compile your java project.

Troubleshooting some common problems:

  • Can't find class AntLabMain_ This is usually from your Main-Class entry in the jar manifest. Remember that with packages, you must use the fully qualified name (package_name.class_name) not just the class name by itself.

  • Can't find class AntLab31_ This class is defined in the resources.jar in your library directory. This is caused by your classpath for compilation or execution not containing a reference to this jar.

M9 - History Graph, Persistence and Contracts

Story/Task Details

  • Provide a way to select saving and loading of system data

  • Persist (save) the data (serialization, custom text, etc.)

  • Restore (load) previously saved data

  • Manager can see option for showing the historical purity report

  • System prompts the manager for setup information for the report

  • System displays the XY graph with the information

Acceptance Scenarios

  • Given: I am a Manager
  • When: I click on the "Historical Purity Reports" screen
  • Then: I can generate a historical graph and the system should display the graph back to me

Done Done Criteria (grading)

  • Previous functions still work
  • Application can save data
  • Application can load data
  • Managers can request a history graph (user and worker cannot)
  • Manager can enter setup information for graph
  • History Graph Displayed correctly
  • Design review and javadocs

M4 - Design - Create User Stories

  • Brainstorm and list 10 user stories (title only).

Notes:
You may have fewer than 10 user stories if you can cover the entire system in fewer.

Done Done Criteria:

  • 10 use cases (or fewer) are listed. They are appropriate and phrased as verb-direct object....(10).

M3 - Individual Android Exercise

Story/Task Details

  • New features

  • Model Changes

  • View Changes

  • Controller changes

Acceptance Scenarios

  • Given:
  • When:
  • Then:

Done Done Criteria

Grading

  • enum for ClassStanding ....................................10
  • attribute added in Student ................................05
  • getter/setter .............................................10
  • new constructor ...........................................05
  • toString ..................................................05
  • widget added to dialog ....................................15
  • list shows required info...................................05
  • student added is in list...................................10
  • dialog displays required default information ..............10
  • dialog updates model ......................................15
  • data validation (if required) .............................10 (constrained inputs get points automatically)

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.