Skip to content

Sprint 1 Report

Enan Ashaduzzaman edited this page Oct 9, 2020 · 15 revisions

Tasks

The first sprint focuses on setting up the problem and developing the persistence layer and build system as main objectives. The tasks necessary to complete the sprint as well as key points for each task are listed below.

  1. Requirements Model
  2. Domain Model
  3. Persistence Layer
  4. Testing of Persistence Layer
  5. Build System and Continuous Integration (CI)
  6. Project Management

Requirements Model

  • List of up to 15 most important functional and non functional requirements.
  • Use Case Diagram for the application
  • 5 Use case specifications (one done by each member)

Domain Model

  • UML Class Diagram
  • Textual rational of key decisions

Persistence Layer

  • Store data in a Postgres DBMS instance associated with a Heroku App
  • Uses Object Relational Mapping (ORM)
  • Must be compliant with the Domain Model

Testing of Persistence Layer

  • Test that the application can read and write, Objects, Attributes of objects, and References between objects.
  • Allows all contents of the database to be removed (clean)

Build Systems and CI

  • Project must compile build and run the test suite of the persistence layer
  • Travis CI must be implemented to trigger a build job after every push to the Github repository

Project Management

  • Use issue tracking feature and assign issues to members
  • Welcome page, describing project
  • ReadMe file, showing team contributions
  • Wiki with Sprint report, Domain and Requirements Models.

Meeting Minutes

Meeting 1 Sunday Sept 27 1:00PM

Meeting method: Video Call

Meeting Duration: 1 hour

Meeting Goal: Discuss Deliverable tasks, determine preliminary deadlines and assign tasks to team members.

  • Going over deliverable requirements and determining the best way to divide tasks

Order that tasks must be completed:

  1. Requirements Model
  2. Domain Model
  3. Persistence Layer and Build Systems/CI can happen at the same time after the first 2

Assign people to tasks

  • Requirements Model: Enan & Ragheed
  • Domain Model: Matt & Ragheed
  • Persistence Layer: Daniel & Enan
  • Persistence Layer Testing: Matt & Matteo

Preliminary Deadlines:

  • Requirements Model done by Tuesday Sept 29
  • Have a meeting afterwards to discuss as a group

Meeting 2 Wednesday Sept 30

Meeting method: Video Call

Meeting duration: 1 hour

Meeting Goal: Discuss and Refine Requirements Model & make a plan going forward

  • Requirements Model discussed by the whole team
  • Decided on modeling the requirement for creating an account on the user rather than each sub-user
  • Removed any ambiguities
  • Came to a consensus on how the application should be set up and what features are necessary/desired
  • Agreed on the 5 most important use cases that need to a have a more detailed description

5 important Use Cases & responsibilities:

UC1: FR1, Create account, Ragheed
UC2: FR2, Login attempt, Enan
UC3: FR4, Post artwork, Matteo
UC4: FR5, Remove Artwork, Matt
UC5: FR6, Place an order, Daniel

Other Updates and upcoming deadlines:

  • Domain Model should be started
  • Matt and Ragheed both have preliminary ideas
  • Deadline: Saturday Oct 4

Meeting 3 Saturday Oct 4

Meeting method: Video Call

Meeting duration: 1 hour

Meeting Goal: Discuss Domain Model and finalize details.

Independent classes for each user type or make a superclass "User"

  • User superclass is the better option since every user has common attributes

Address as a class or attribute of customer

  • As an independent class with 0..1 multiplicity
  • Allows for the option of having an address without keeping empty attributes if there is no address

How do we implement reviews?

  • A class that is a composition of artist (cannot have a review without an artist)

How doe we connect orders to artwork?

  • Two separate classes with .. multiplicity
  • An artwork can be in several orders
  • An order can have several artworks