Added files
3
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"java.configuration.updateBuildConfiguration": "interactive"
|
||||||
|
}
|
||||||
BIN
assets/lesson1-01.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
assets/lesson1-02.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
assets/lesson1-03.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/lesson1-04.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
assets/lesson1-05.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
assets/lesson1-06.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
assets/lesson1-07.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
assets/lesson1-08.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/lesson1-09.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
assets/lesson1-10.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
assets/lesson1-11.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
assets/lesson1-12.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
assets/lesson1-13.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
BIN
assets/lesson1-14.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
assets/lesson1-15.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
assets/lesson1-16.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
assets/lesson1-17.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
assets/lesson1-18.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
75
pom.xml
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>com.csase</groupId>
|
||||||
|
<artifactId>githubintro</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
|
|
||||||
|
<name>githubintro</name>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<java.version>17</java.version>
|
||||||
|
<maven.compiler.source>17</maven.compiler.source>
|
||||||
|
<maven.compiler.target>17</maven.compiler.target>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencyManagement>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit</groupId>
|
||||||
|
<artifactId>junit-bom</artifactId>
|
||||||
|
<version>5.9.1</version>
|
||||||
|
<type>pom</type>
|
||||||
|
<scope>import</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</dependencyManagement>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<!--
|
||||||
|
https://projectlombok.org/
|
||||||
|
-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>1.18.24</version>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.jupiter</groupId>
|
||||||
|
<artifactId>junit-jupiter</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<!--
|
||||||
|
https://junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests
|
||||||
|
-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.jupiter</groupId>
|
||||||
|
<artifactId>junit-jupiter-params</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>3.10.1</version>
|
||||||
|
<configuration>
|
||||||
|
<source>${maven.compiler.source}</source>
|
||||||
|
<target>${maven.compiler.target}</target>
|
||||||
|
<!-- remove spaces
|
||||||
|
<compilerArgs> - - enable-preview</compilerArgs>
|
||||||
|
-->
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
<version>2.22.2</version>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
||||||
BIN
src/.DS_Store
vendored
Normal file
BIN
src/main/.DS_Store
vendored
Normal file
BIN
src/main/java/.DS_Store
vendored
Normal file
57
src/main/java/com/csase/Assignment.java
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
package com.csase;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Represents an assignment with a name and due date
|
||||||
|
*/
|
||||||
|
public class Assignment {
|
||||||
|
|
||||||
|
private String name; // name of assignment
|
||||||
|
private LocalDate dueDate; // due date of assignment
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sets name and due date of assignment
|
||||||
|
*/
|
||||||
|
public Assignment(String name, LocalDate dueDate) {
|
||||||
|
this.name = name;
|
||||||
|
this.dueDate = dueDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns name of assignment
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns due date of assignment
|
||||||
|
*/
|
||||||
|
public LocalDate getDueDate() {
|
||||||
|
return this.dueDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sets name of assignment
|
||||||
|
*/
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sets due date of assignment
|
||||||
|
*/
|
||||||
|
public void setDate(LocalDate dueDate) {
|
||||||
|
this.dueDate = dueDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns string representation of assignment
|
||||||
|
*/
|
||||||
|
public String toString() {
|
||||||
|
return this.name + " (due: " + this.dueDate.format(DateTimeFormatter.ofPattern("dd/MM/yyyy")) + ")";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
9
src/main/java/com/csase/DeleteMe.java
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
package com.csase;
|
||||||
|
|
||||||
|
public class DeleteMe {
|
||||||
|
|
||||||
|
public void deleteMe() {
|
||||||
|
System.out.println("Delete me!");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
13
src/main/java/com/csase/PlannerRunner.java
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package com.csase;
|
||||||
|
|
||||||
|
public class PlannerRunner {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
// Create a new student
|
||||||
|
Student jada = new Student();
|
||||||
|
|
||||||
|
// Gets the student's choice until the student exits
|
||||||
|
jada.getChoice();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
63
src/main/java/com/csase/Student.java
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
package com.csase;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Represents a student that with a study planner
|
||||||
|
*/
|
||||||
|
public class Student {
|
||||||
|
|
||||||
|
private StudyPlanner planner; // study planner
|
||||||
|
private Scanner scanner; // scanner for user input
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sets study planner and scanner
|
||||||
|
*/
|
||||||
|
public Student {
|
||||||
|
planner = new StudyPlanner();
|
||||||
|
scanner = new Scanner(System.in);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Gets the student's choice and runs it until the student exits
|
||||||
|
*/
|
||||||
|
public void getChoice() {
|
||||||
|
int option = -1;
|
||||||
|
|
||||||
|
while (option != 3) {
|
||||||
|
System.out.println("Welcome to Study Planner!");
|
||||||
|
System.out.println("What would you like to do?");
|
||||||
|
System.out.println(planner.getOptions());
|
||||||
|
System.out.print("Enter option: ");
|
||||||
|
option = scanner.nextInt();
|
||||||
|
scanner.nextLine();
|
||||||
|
runChoice(option);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Runs the student's choice
|
||||||
|
*/
|
||||||
|
public void runChoice(int option) {
|
||||||
|
if (option == 1) {
|
||||||
|
addAssignment();
|
||||||
|
} else if (option == 2) {
|
||||||
|
System.out.println(planner.listAssignments());
|
||||||
|
} else if (option == 3) {
|
||||||
|
System.out.println("Goodbye!");
|
||||||
|
} else {
|
||||||
|
System.out.println("Invalid option!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Adds a new assignment to the study planner
|
||||||
|
*/
|
||||||
|
public void addAssignment() {
|
||||||
|
System.out.print("Enter assignment name: ");
|
||||||
|
String name = scanner.nextLine();
|
||||||
|
System.out.print("Enter due date (YYYY-MM-DD): ");
|
||||||
|
String dueDate = scanner.nextLine();
|
||||||
|
planner.addAssignment(name, dueDate);
|
||||||
|
}
|
||||||
|
}
|
||||||
67
src/main/java/com/csase/StudyPlanner.java
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
package com.csase;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Represents a study planner with a list of assignments
|
||||||
|
*/
|
||||||
|
public class StudyPlanner {
|
||||||
|
|
||||||
|
private ArrayList<Assignment> assignments; // list of assignments
|
||||||
|
private String[] options; // list of options
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sets assignments and options
|
||||||
|
*/
|
||||||
|
public StudyPlanner() {
|
||||||
|
assignments = new ArrayList<Assignment>();
|
||||||
|
options = new String[]{"1. Add Assignment", "2. List Assignments", "3. Exit"};
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns list of assignments
|
||||||
|
*/
|
||||||
|
public ArrayList<Assignment> getAssignments() {
|
||||||
|
return assignments;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Adds a new assignment to the list of assignments
|
||||||
|
*/
|
||||||
|
public void addAssignment(String name, String dueDateString) {
|
||||||
|
LocalDate dueDate = LocalDate.parse(dueDateString, DateTimeFormatter.ISO_LOCAL_DATE);
|
||||||
|
assignments.add(new Assignment(name, dueDate));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns string representation of assignments
|
||||||
|
*/
|
||||||
|
public String listAssignments() {
|
||||||
|
String assignmentsString = "";
|
||||||
|
|
||||||
|
if (assignments.size() == 0) {
|
||||||
|
return "No assignments to list!\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Assignment assignment : assignments) {
|
||||||
|
assignmentsString += assignment.toString() + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
return assignmentsString;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns string representation of options
|
||||||
|
*/
|
||||||
|
public String getOptions() {
|
||||||
|
String optionsString = "";
|
||||||
|
|
||||||
|
for (String option : options) {
|
||||||
|
optionsString += option + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
return optionsString;
|
||||||
|
}
|
||||||
|
}
|
||||||