pilocchii / tcss360group3 Goto Github PK
View Code? Open in Web Editor NEWGroup 3 project repository
Group 3 project repository
The Calendar paradigm is old as of Java 7. In order to keep our code idiomatic, we should be using the latest Java paradigm, DateTime.
All references and calculations of Calendar and GregorianCalendar should be changed to be ZonedDateTime or LocalDateTime objects and calculations so that interacting with our UI is simple and follows the most up-to-date Java coding practices.
and checking if a Java arraylist works is unnecessary
I know we originally decided to include author tags for classes, but most of us haven't been doing it. I don't care either way, but we should make it consistent. Opinions?
As Urban Parks staff, I want to view all jobs between a start and end date (inclusive), which might be in the past.
Rule:
The maximum number of pending park jobs must be a positive integer.
Acceptance tests:
Zero is specified
A negative integer is specified
A non-integer is specified
A positive integer is specified
The Volunteer class's check of the business rule that no jobs must overlap throws a volunteerJobOverlapException even when the volunteer has no jobs in their jobsList.
Currently, the count of pending jobs returns the total number of jobs in the system, some of which could be cancelled (ie not pending)
This should be handled gracefully. Either:
Don't let urban parks staff do this, or
Shrink the number of pending jobs to the new value
example: all fields non-null
These were discussed in class and make it so we can assume in preconditions that for example a Job's start date isn't null
e.g. myParkManager.isMaximumJobDays(myJob);
Rule:
No User can carry out any other user story until they are identified by the system
Rule:
A user must be one of Urban Parks Staff Member, Park Manager, or Volunteer
Rule:
A job can be unsubmitted only if the job starts at least a minumum number of days in the future.
Acceptance tests:
A volunteer can unvolunteer only if the job starts at least a minumum number of days in the future, default of 3.
Volunteer unvolunteers for a job that starts on the current day
Volunteer unvolunteers for a multi-day job that starts prior to the current day
Volunteer unvolunteers for a job that starts more than the minumum number of days in the future
Volunteer unvolunteers for a job that starts exactly the minumum number of days in the future
These views need to be implemented. New views may be added in this thread.
Volunteer menu
Park Manager menu
Urban Parks staff menu
Signup menu
Register User menu
Rule:
No job can be specified that takes more than the maximum number of days, default of 4
Acceptance tests:
The specified job takes one more than the maximum number of days
The specified job takes one fewer than the maximum number of days
The specified job takes the maximum number of days
Rule:
No job can be specified whose end date is more than the maximum number of days from the current date, default of 60
Acceptance tests:
The specified job ends one more than the maximum number of days from the current date
The specified job ends one fewer than the maximum number of days from the current date
The specified job ends the maximum number of days from the current date
Rule:
There can be no more than the maximum number of pending jobs at a time in the entire system, default of 10
Acceptance tests:
The system has exactly the maximum number of pending jobs
The system has far fewer than the maximum number of pending jobs
The system has one fewer than the maximum number of pending jobs
Rule:
A volunteer may sign up only if the job begins at least a minimum number of calendar days after the current date, same default as for unvolunteering.
Acceptance tests:
Volunteer signs up for job that begins less than the minimum number of calendar days from the current date
Volunteer signs up for job that begins much more than the minimum number of calendar days from the current date
Volunteer signs up for job that begins exactly the minimum number of calendar days from the current date
Rule:
A volunteer cannot sign up for more than one job that extends across any particular calendar day
Acceptance tests:
Volunteer has jobs already signed up for, this job starts the same day as the end of some job already signed up for
Volunteer has jobs already signed up for, this job ends the same day as the start of some job already signed up for
Volunteer has no jobs already signed up for
Volunteer has jobs already signed up for, this job does not extend across any days as jobs already signed up for
A job should store a list of the volunteers that are currently signed up for it.
This means that there is a 2-way relationship between jobs and volunteers.
When volunteers and jobs are associated, both references MUST be changed, or they will become unsynced, which will require some refactoring.
Rule:
A volunteer can unvolunteer only if the job starts at least a minumum number of days in the future, default of 3.
Acceptance tests:
Volunteer unvolunteers for a job that starts on the current day
Volunteer unvolunteers for a multi-day job that starts prior to the current day
Volunteer unvolunteers for a job that starts more than the minumum number of days in the future
Volunteer unvolunteers for a job that starts exactly the minumum number of days in the future
This was brought up multiple times in class.
We need to know what happens with date calculations when our program is run in different timezones, and possibly document it.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.