Week 5 - Persistence II & Project Requirements (M1)
Today's Assignment
Please use seminar05 branch. Tasks for seminar 05 are located here:https://github.com/fi-muni/PA165/blob/master/tasks/seminar05.md
Milestones in PA165
Your team will be required to meet several milestones. For each milestone there are two things you need to do:
- Push to Github everything in your project that is part of that milestone;
- Evaluate another team’s project;
For (1) there will be always a special document with requirements that you project should meet. If your team doesn’t meet some of the requirements it will be penalized. For not meeting a deadline there will be further penalizations.
When you evaluate project (2) you must evaluate code that was committed at the time of the deadline. So if for example the deadline is 29.10. 23:59 then you should clone and checkout a commit just before this time.
It is expected that every person in the team contributes equally during every milestone. It is important that this can be proved by looking up Github commit history. This means you must not commit changes on behalf of somebody else.
It is expected that you can answer questions about parts of the code you have written. Even if everything works as expected, if you cannot answer basic questions about it you can be fully penalized.
This year we prepared an example project for you that we use on the seminars (https://github.com/fi-muni). You may not copy paste parts of this example project. If you do so you will be heavily penalized. If you spot this behavior in a project you are evaluating, then please highlight this in your evaluation report.
How to write another project’s evaluation
You will submit the evaluation as text document to submission folder in information system /auth/el/1433/podzim2015/PA165/ode/. Use submission folder for your seminar group and subfolder for the specific milestone.
For each milestone, the tutor will assign your team a project (another team’s project) that you should evaluate.
You should use the checklist that will be part of each milestone to deduct points. Your evaluation should be a short text document, see the example below. In your evaluation you should mention why you are deducing points and how many. The conclusion of your evaluation should be how many points the project should receive for this milestone.
Example checklist:
- Maximum number of points for this milestone are 10 points
- -1 point project should be compilable from command line using “mvn compile”
- -2 points 5 hours late submission
Example evaluation:
evaluated project: github.com/XXXXYYY
a) Checklist evaluation:
- -1 project was not compilable
- -2 project was submitted 1 hour after deadline
total points: 7
b) General comments: we would like to suggest to write more extended comments, example classes xxx and yyy. We generally found the number of test methods acceptable for the project, however we would suggest to improve the quality of tests for more critical parts of the project, example package zzz. The provided tests do not test the system when multiple entities are removed.
Really great work on the configuration of the project, we liked the idea to use the Dozer project for beans mapping.
c) Strong points of the project: great user-friendly user interface, very good exception handling throughout the project.
d) Weaknesses of the project: testing should be improved. Some parts of the application seem quite fragile and not reliable at all (example: classes abc and bcd). The project does not follow Java code conventions in several places (example: xxx).
e) other notes: It looks like Pet.java was copied from example project. Also it seems that Petr Lenoch was not contributing very much, he has only one commit in which he was formatting code.
1st Milestone Project Requirements PA165
1st milestone project done: Fri 30.10. 23:59
1st milestone evaluation submitted: Tue 3. 11. 15:59
Project Requirements:
- create a project in a Github repository that is publicly accessible (for read) choose a short and descriptive name. Create some project wiki to publish other information for your project.
- on the project wiki there will be a project description, a use case diagram and a class diagram for entity classes. There will be at least two user roles in the use case diagram. Associations between entities will be present in the class diagram.
- create 4 entity classes for your project.
- create a DAO layer interface (with proper javadoc).
- create the JPA implementation of the DAO classes (CRUD operations are enough for the first checkpoint).
- create unit tests for DAO classes (use in-memory database).
- every team member should work with different entities on different parts of the project (e.g. member 1 will create implementation of DAO for entity A, but member 2 will create unit test for entity A). In every class there will be javadoc @author with the name of the class author. Also you must commit into Git only the changes that you made yourself. If you commit on behalf of somebody else this will not be regarded as his work!
- the project will be built using maven, and make sure you have all dependencies correctly configured, so it is possible to build it using just the command line.
Evaluation Checklist:
- Maximum number of points for this milestone is 10 points.
- -3 points if it is not possible to compile the project using “mvn clean install”. You must either make this work or ask the team to fix this ASAP because it’s hard to check the code without this.
- -1 point for each minor occurrence of a team member not contributing enough.
- -1 points for incorrectly implementing equals/hash code.
- -1 points for every minor occurrence of missing methods/tests (e.g. missing important method on a DAO object or a missing test for that method).
- If a team member was not contributing at all, or very little, you should explicitly say this in your evaluation report. Tutor will follow up on this information.
PA165/06 Assignment of Projects for reviews
this group reviews -----------------------------> Group1 (Nieslanik, Olejník, Šulc, Staurovský) -> Group2 (G2 Repo: https://github.com/kizivat/creatures-hunting) Group2 (Bittara, Kizivat, Klein) -> Group3 (G3 Repo: https://github.com/severinsimko/DogBarberShop) Group3 (Brath, Drobek, Simko, Peňáz) -> Group4 (G4 Repo: https://github.com/Suzii/pa165-music-library) Group4 (Štefanko, Seman, Dankovcikova, Boroň) -> Group1 (G1 Repo: https://github.com/Marrko/Mushroom-Hunter-Portal)