Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions course-info.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,8 @@ additional_files:
- name: docs/HOW_TO_SUBMIT.md
- name: docs/PROJECT_IDEAS.md
- name: docs/guides/numeric-literals-simplified.md
- name: participants/olena/project-1/src/main/java/com/wcc/platform/model/Member.java
- name: participants/olena/project-1/src/main/java/com/wcc/platform/model/MemberRepository.java
- name: src/main/java/com/wcc/bootcamp/java/Main.java
- name: participants/olena/project-1/src/main/java/com/wcc/platform/model/CsvMemberRepository.java
yaml_version: 5
3 changes: 3 additions & 0 deletions participants/olena/project-1/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,7 @@ repositories {
application {
mainClass = 'com.wcc.platform.Main'
}
tasks.named('run') {
standardInput = System.in
}

2 changes: 2 additions & 0 deletions participants/olena/project-1/members.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
name,email,location,joinDate
Ned,ned@gmail.com,London,2026-02-27
Original file line number Diff line number Diff line change
@@ -1,9 +1,48 @@
package com.wcc.platform;


public class Main {
public static void main(String[] args) {
System.out.println("WCC Member Directory started...");
import com.wcc.platform.model.Member;
import com.wcc.platform.model.MemberRepository;
import com.wcc.platform.model.CsvMemberRepository;

import java.io.IOException;
import java.time.LocalDate;
import java.util.List;
import java.util.Scanner;


public class Main {
private static final Scanner scanner = new Scanner(System.in);
private static final MemberRepository repository = new CsvMemberRepository();


public static void main(String[] args) throws IOException {
repository.loadFromCsv("members.csv");


System.out.println("Enter name: ");
String name = scanner.nextLine();

System.out.println("Enter email: ");
String email = scanner.nextLine();

System.out.println("Enter location: ");
String location = scanner.nextLine();

Member member = new Member(
name,
email,
location,
List.of(),
LocalDate.now()
);
repository.add(member);
repository.saveToCsv("members.csv");
System.out.println("Member added.");
viewMembers();
}
public static void viewMembers() {
repository.findAll().forEach(System.out::println);
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package com.wcc.platform.model;

import java.io.*;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;


public class CsvMemberRepository implements MemberRepository {

private final List<Member> members = new ArrayList<>();

public void add(Member member) {
members.add(member);
}

public List<Member> findAll() {
return members;
}

public void saveToCsv(String filePath) throws IOException {

File file = new File(filePath);
boolean fileExists = file.exists();
boolean fileEmpty = !fileExists || file.length() == 0;

FileWriter writer = new FileWriter(file);

if(fileEmpty) {
writer.write(String.format("name,email,location,joinDate%n"));
}

for (Member member : members) {
writer.write(String.format("%s,%s,%s,%s%n",
member.getName(),
member.getEmail(),
member.getLocation(),
member.getJoinDate()
));
}
writer.close();
}

public void loadFromCsv(String filePath) throws IOException {
File file = new File(filePath);
if(!file.exists()){
return;
}

BufferedReader reader = new BufferedReader(new FileReader(filePath));

String line;

reader.readLine();

while ((line = reader.readLine()) != null) {
String[] parts = line.split(",");
String name = parts[0].trim();
String email = parts[1].trim();
String location = parts[2].trim();
LocalDate joinDate = LocalDate.parse(parts[3].trim());

Member member = new Member(
name,
email,
location,
List.of(),
joinDate
);
members.add(member);
}
reader.close();
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package com.wcc.platform.model;

import java.time.LocalDate;
import java.util.List;

public class Member {
private final String name;
private final String email;
private final String location;
private final List<String> skills;
private final LocalDate joinDate;


public Member(
String name,
String email,
String location,
List<String> skills,
LocalDate joinDate
) {
this.name = name;
this.email = email;
this.location = location;
this.skills = skills;
this.joinDate = joinDate;
}

public String getName() {
return name;
}

public String getEmail() {
return email;
}

public String getLocation() {
return location;
}

public List<String> getSkills() {
return skills;
}

public LocalDate getJoinDate() {
return joinDate;
}

@Override
public String toString() {
return String.format("%s %s %s", name, email, location);
}
}




Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.wcc.platform.model;

import java.io.IOException;
import java.util.List;

public interface MemberRepository {

void add(Member member);

List<Member> findAll();

void saveToCsv(String filePath) throws IOException;

void loadFromCsv(String filePath) throws IOException;
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.wcc.bootcamp.java;

public class Main {
public static void main(String[] args) {
String greetings = "Hello World";
System.out.println(greeting);
System.out.println(greetings);
}
}

Expand Down