Skip to content

Commit cdf5726

Browse files
authored
Merge branch 'code-differently:main' into Lesson_16
2 parents 33c95fc + 7e34e46 commit cdf5726

File tree

9 files changed

+61
-11
lines changed

9 files changed

+61
-11
lines changed

lesson_10/libraries/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"scripts": {
77
"start": "node build/lesson10.js",
88
"dev": "tsc-watch --noClear -p ./tsconfig.build.json --onSuccess \"node ./build/lesson10.js\"",
9-
"test": "node --experimental-vm-modules node_modules/.bin/jest",
9+
"test": "node --experimental-vm-modules node_modules/.bin/jest --coverage",
1010
"compile": "tsc -p tsconfig.build.json",
1111
"prepare": "npm run compile",
1212
"pretest": "npm run compile",
@@ -42,4 +42,4 @@
4242
"csv-parser": "^3.0.0",
4343
"uuid": "^10.0.0"
4444
}
45-
}
45+
}

lesson_16/objects/objects_app/build.gradle.kts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,12 @@ repositories {
1717

1818
dependencies {
1919
// Use JUnit Jupiter for testing.
20-
testImplementation("com.codedifferently.instructional:instructional-lib")
2120
testImplementation("org.junit.jupiter:junit-jupiter:5.9.1")
2221
testImplementation("org.springframework.boot:spring-boot-starter-test")
2322
testImplementation("org.assertj:assertj-core:3.25.1")
2423
testImplementation("at.favre.lib:bcrypt:0.10.2")
2524

2625
// This dependency is used by the application.
27-
implementation("com.codedifferently.instructional:instructional-lib")
2826
implementation("com.google.guava:guava:31.1-jre")
2927
implementation("com.google.code.gson:gson:2.10.1")
3028
implementation("org.projectlombok:lombok:1.18.30")

lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/Lesson16Test.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33
import static org.assertj.core.api.Assertions.assertThat;
44

55
import org.junit.jupiter.api.Test;
6+
import org.springframework.boot.test.context.SpringBootTest;
67

8+
@SpringBootTest(useMainMethod = SpringBootTest.UseMainMethod.WHEN_AVAILABLE)
79
class Lesson16Test {
810

911
@Test
10-
void testCanVote() {
12+
void testMain() {
1113
assertThat(new Lesson16()).isNotNull();
1214
}
1315
}

lesson_16/objects/settings.gradle.kts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,5 @@
77
* in the user manual at https://docs.gradle.org/8.0.2/userguide/multi_project_builds.html
88
*/
99

10-
includeBuild("../../lib/java/codedifferently-instructional")
11-
1210
rootProject.name = "lesson_16"
1311
include("objects_app")

lesson_17/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ Please review the following resources before lecture:
1717
## Homework
1818

1919
- [ ] Complete [Applying SOLID principles](#applying-solid-principles-bank-atm) exercise.
20+
- [ ] Review [OOP Project](/project_oop/) documentation and complete user stories.
2021

2122
## Applying SOLID Principles (Bank ATM)
2223

lesson_17/bank/bank_app/build.gradle.kts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,12 @@ repositories {
1717

1818
dependencies {
1919
// Use JUnit Jupiter for testing.
20-
testImplementation("com.codedifferently.instructional:instructional-lib")
2120
testImplementation("org.junit.jupiter:junit-jupiter:5.9.1")
2221
testImplementation("org.springframework.boot:spring-boot-starter-test")
2322
testImplementation("org.assertj:assertj-core:3.25.1")
2423
testImplementation("at.favre.lib:bcrypt:0.10.2")
2524

2625
// This dependency is used by the application.
27-
implementation("com.codedifferently.instructional:instructional-lib")
2826
implementation("com.google.guava:guava:31.1-jre")
2927
implementation("com.google.code.gson:gson:2.10.1")
3028
implementation("org.projectlombok:lombok:1.18.30")

lesson_17/bank/bank_app/src/test/java/com/codedifferently/lesson17/Lesson17Test.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
import static org.assertj.core.api.Assertions.assertThat;
44

55
import org.junit.jupiter.api.Test;
6+
import org.springframework.boot.test.context.SpringBootTest;
7+
import org.springframework.boot.test.context.SpringBootTest.UseMainMethod;
68

9+
@SpringBootTest(useMainMethod = UseMainMethod.WHEN_AVAILABLE)
710
class Lesson17Test {
811

912
@Test

lesson_17/bank/settings.gradle.kts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,5 @@
77
* in the user manual at https://docs.gradle.org/8.0.2/userguide/multi_project_builds.html
88
*/
99

10-
includeBuild("../../lib/java/codedifferently-instructional")
11-
1210
rootProject.name = "lesson_13"
1311
include("bank_app")

project_oop/README.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Project OOP
2+
*You down with OOP? (Yeah you know me!)*
3+
4+
## Introduction
5+
6+
For this project, you and your teammates are tasked with modeling a real-world problem using object-oriented and SOLID design principles, from ideation to implementation.
7+
8+
## Prerequisites
9+
10+
Before starting work on your project, you will need to submit three user stories as feature requests in your assigned GitHub repo. These will need to be approved by the instructor before you can begin coding. Your final project submission must enable the functionality described by your user stories.
11+
12+
## Project Requirements
13+
14+
* All work must be submitted in your team's assigned GitHub repository.
15+
* The assignment can be completed in TypeScript or in Java.
16+
* Must include at least 5 types of objects with meaningful relattionships to each other.
17+
* One of your objects must be a custom data structure that provides for adding, removing, and updating items in a collection.
18+
* Implement at least two custom exceptions.
19+
* Write unit tests achieving 90% code coverage (using JaCoCo for Java or Jest for Typescript).
20+
* Must include an integration test.
21+
* Your solution must illustrate each of the SOLID principles.
22+
* Each team member must contribute *at least one* submitted pull request containing working code and tests.
23+
* Include a README for your repo describing the problem you're solving, the solution, and how you would improve your solution.
24+
25+
# Presentation Requirements
26+
27+
* Your presentation should be no more than 10 minutes with a maximum of 10 slides.
28+
* Each member of the team must speak during the presentation.
29+
* Your presentation must address the following questions:
30+
* What problem were you attempting to solve?
31+
* How does your design address the solution?
32+
* How did you address each of the SOLID principles?
33+
* How would you improve on your solution?
34+
35+
## Extra Credit
36+
37+
Design a CLI that allows users to interact with your application. Check out the code in [lesson_10](/lesson_10/libraries/src/cli/) for an example in TypeScript, or [this file](/lib/java/codedifferently-instructional/instructional-lib/src/main/java/com/codedifferently/instructional/quiz/QuizProctor.java) for an example in Java.
38+
39+
## Timeline
40+
41+
* Submit three user stories (Monday, 11/4 5PM ET)
42+
* Receive approval for your user stories (Tuesday, 11/5 1PM ET)
43+
* Finish code commits (11/8, 1PM ET)
44+
* Give presentation (11/11, 1PM ET)
45+
46+
## Grading
47+
48+
Your grade for this project will amount to 25% of your final grade in the course.
49+
50+
* 50% of your project grade will be composed of a team score. Your final solution and presentation will be assessed on how well it meets the described functional and technical requirements. Work submitted after the assigned deadline will result in a deduction of points.
51+
* Completing the extra credit will enable up to an additional 50% increase to the team score component.
52+
* The remaining 50% of your grade will be composed of an individual score. The individual score will be computed based on survey feedback from your teammates and the instructors/TAs regarding your technical ability, communication skills, and teamwork contributions.

0 commit comments

Comments
 (0)