Skip to content

Commit ab1508b

Browse files
authored
Merge branch 'code-differently:main' into lesson_16
2 parents 57e371b + d46c282 commit ab1508b

File tree

6 files changed

+71
-4
lines changed

6 files changed

+71
-4
lines changed

.github/workflows/check_push.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ on:
1818
- "lesson_13/maps_java/**"
1919
- "lesson_13/maps_ts/**"
2020
- "lesson_14/exceptions/**"
21+
- "lesson_15/tdd/**"
22+
- "lesson_16/objects/**"
23+
- "lesson_17/bank/**"
2124

2225
jobs:
2326
build:
@@ -125,4 +128,14 @@ jobs:
125128

126129
- name: Build Lesson 15 with Java
127130
working-directory: ./lesson_15/tdd
131+
run: |
132+
./gradlew assemble
133+
./gradlew spotlessCheck
134+
135+
- name: Build Lesson 16 with Java
136+
working-directory: ./lesson_16/objects
137+
run: ./gradlew check
138+
139+
- name: Build Lesson 17 with Java
140+
working-directory: ./lesson_17/bank
128141
run: ./gradlew check

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: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ plugins {
33
application
44
eclipse
55
jacoco
6+
id("io.freefair.lombok") version "8.10.2"
67
id("com.diffplug.spotless") version "6.25.0"
78
id("org.springframework.boot") version "3.2.2"
89
id("com.adarshr.test-logger") version "4.0.0"
@@ -25,7 +26,6 @@ dependencies {
2526
// This dependency is used by the application.
2627
implementation("com.google.guava:guava:31.1-jre")
2728
implementation("com.google.code.gson:gson:2.10.1")
28-
implementation("org.projectlombok:lombok:1.18.30")
2929
implementation("org.springframework.boot:spring-boot-starter")
3030
}
3131

lesson_17/README.md

Lines changed: 2 additions & 1 deletion
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

@@ -28,7 +29,7 @@ Your task for this assignment is add enhancements to an ATM simulator. The [Bank
2829
* We want the `BankAtm` class to support the concept of a `BusinessCheckingAccount`. A business account requires that at least one of the owning accounts is a business.
2930
* In addition to supporting checks and cash, we also want to support the concept of another monetary instrument called a `MoneyOrder`. Unlike a `Check`, a `MoneyOrder` withdraws funds from a source account immediately on creation for the purposes of this simulation..
3031
* For traceability, all of the transactions in the `BankAtm` class should logged. Create an `AuditLog` class that keeps a record of all debits and credits to any account and integrate it with the `BankAtm` class.
31-
* For the `depositFunds` method that accepts a cash amount, we'd like the ability to deposit funds in a variety of currencies. Add a parameter that accepts a currency type and a new object that encapsulates the currency converter logic for converting a cash amount to the account currency type.
32+
* ~~For the `depositFunds` method that accepts a cash amount, we'd like the ability to deposit funds in a variety of currencies. Add a parameter that accepts a currency type and a new object that encapsulates the currency converter logic for converting a cash amount to the account currency type.~~
3233

3334
### Technical Requirements
3435

lesson_17/bank/bank_app/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ plugins {
33
application
44
eclipse
55
jacoco
6+
id("io.freefair.lombok") version "8.10.2"
67
id("com.diffplug.spotless") version "6.25.0"
78
id("org.springframework.boot") version "3.2.2"
89
id("com.adarshr.test-logger") version "4.0.0"

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 solution to 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 for each user story that demonstrates how your code implements the desired feature.
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 (Friday, 11/8, 1PM ET)
44+
* Give presentation (Monday, 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)