Member | Roles |
---|---|
Connor Darling | Product Owner |
Carlos Aguilera | SCRUM Master |
Cameron Rosenthal | Team Member |
Liam Eastwood | Team Member |
Joesph Bobby | Team Member |
Username: admin
Password: password123
This project models as a library for basic 2D graphical objects.
The goal is to exercise C++ fundamentals to construct this project
such as inheritance, aggregation, polymorphism, exception handling,
templates, operator overloading, and move semantics. There is a
Shape class interface that allows all other shapes to derive from it.
To store these shapes, a custom vector class is implemented using a
basic iterator member type with begin()
and end()
methods.
To sort the vector of shape objects, a custom selection sort algorithm
is implemented using templated functions to compare perimeter and area.
The program is created using the gui library Qt. Specifically QPainter
and QWidgets
are used to render shapes and text on the screen. The user
interface is designed to be readable and simple, while still being able to handle
contingencies such as invalid input. In addition to output of text
and shapes in the window, the program allows a user to manipulate size, color,
and location.
Our team has strongly enforced an agile development methodology. These methods include:
- Following a scrum procress of assigning a scrum master, product owner and team member role
- Creating user stories to help with the implementation of features
- Creating UML class diagrams, both use case and state diagrams
- Choose demo shapes using a header pane
- A collapsable side navigation bar to modify any default attribute of a given shape
- Settings header pane for user settings, contact information, and save and exit
(Sprint #1) Estimated Time: 3 weeks |
---|
- Implement shapes.txt parser object/logic
- Implement vector container
- Begin implementation of shape abc interface & inheritance hierarchy (line, polyline ...)
- Investigate/understand qt qpainter demo project
- Build basic 2d modeler qt project with login screen
(Sprint #2) Estimated Time: 3 weeks |
---|
- Complete implementation of shape abc interface & inheritance hierarchy (line, polyline ...)
- Ability to render 2d shapes (2d modeler qt project)
- Renderarea widget (inherits from qwidget like qt 2d rendering demo project) can dislpay all geometric shapes
- Ability to render all shapes from shapes.txt in renderarea widget (2d modeler qt project)
- Reports to display shapes, shape perimeter & area (2d modeler qt project)
- Update 2d shapes (i.e. add, remove or move) via rendering widget forms (2d modeler qt project)
- Persist changes to shapes.txt file
General Requirement List |
---|
- Use inheritance
- Use aggregation
- Use exception handling
- Use a virtual function
- Use at least two overload operators
- At least one class using templates
- At least one class must contain a pointer (write copy constructor and test it)
- Invalid inputs should be addressed.
- Doxygen documentation
- Valgrind memory leak check
- Guests should be able to enter "satisfied customer" testimonials that persist between executions.
- Provide "Contact us" method with team name and logo