Code Contributions:

Github Profile:

I’ve been pretty inconsistent with my commits, commiting whenever due to college applications and stuff but I want to improve my self by attempting to commit something of value at least 5 days a week. I also want to change my habit of mass commiting instead of commiting changes when I make them, this was especially a problem for me because we has branches to work in and I thought it was better to not push broken code and have my teammates merge it.

Group Contributions:

Group Frontend Profile:

Group Lesson Profile:

Group Reflection:

On the frontend, as the primary Frontend Developer, I was commiting very frequently on the Frontend and would work on improving our page in many ways as possible, this involves updating the styling as well as just overall frontend modifications such as when we swapped frameworks from Svelte to normal HTML pages and I had to constantly work with people and contributed in some way to each of my team memebers execept for Alex, For example, me and Derrick were on the same boat, getting used to learning working with such a fast paced group so we would help each other out on various issues we came across.

I also worked with David on developing the main aspects of the page and this lead to one of the most interesting Frontend topics that I worked on (although this didn’t end up being implemented due to lack of time to for David to mess around with and for Drew to add to the backend), I learned how localStorage and sessionStorage and got the opportunity to work with cookies and gained a lot of new skills along with the Svelte and Tailwind learning.

This is the code for the cookie function made for David to store previous location data inside the cookie:

// Function to set a cookie
        function setCookie(name, value, days) {
            const date = new Date();
            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); // set the expiration date for a cookie
            const expires = "expires=" + date.toUTCString();
            document.cookie = name + "=" + value + ";" + expires + ";path=/"; // cookie features
        }
// Function to get a cookie
function getEmailFromCookie() {
    const name = "email="; // gets the email associate with a cookie
    const decodedCookie = decodeURIComponent(document.cookie); // gets cookie that is saved
    const cookieArray = decodedCookie.split(';');
    for (let i = 0; i < cookieArray.length; i++) { // loop to search for the cookie that the email
        let cookie = cookieArray[i];
        while (cookie.charAt(0) === ' ') {
            cookie = cookie.substring(1);
        }
        if (cookie.indexOf(name) === 0) {
            return cookie.substring(name.length, cookie.length);
        }
    }
    return "";
}

Some object oriented programming that I worked on although it wasn’t for the project itself, but the lesson, was the car type example I used:

class Vehicle {
    private String brand; // private instance variable
    private int year; // private instance variable

    public Vehicle(String brand, int year) {
        this.brand = brand;
        this.year = year;
    }

    public void displayInfo() { // common variables for each vehicle
        System.out.println("Brand: " + brand);
        System.out.println("Year: " + year);
    }
}

class Truck extends Vehicle {
    // feature that only a truck can have
    private double maxLoadCapacity;

    public Truck(String brand, int year, double maxLoadCapacity) {
        super(brand, year); // Inherits the variables from superclass
        this.maxLoadCapacity = maxLoadCapacity;
    }

    @Override // Override allows for displayInfo to now also show the trait specific to the Truck while still keeping the main variables
    public void displayInfo() {
        super.displayInfo(); // Reuse the displayInfo method from the superclass
        System.out.println("Max Load Capacity: " + maxLoadCapacity + " tons");
    }
}

class Car extends Vehicle {
    // something that cars have
    private int numberOfDoors;

    public Car(String brand, int year, int numberOfDoors) {
        super(brand, year);
        this.numberOfDoors = numberOfDoors;
    }

    @Override // Override allows for displayInfo to now also show the trait specific to the Car while still keeping the main variables
    public void displayInfo() {
        super.displayInfo(); // Reuse the displayInfo method from the superclass
        System.out.println("Number of Doors: " + numberOfDoors);
    }
}

class Sedan extends Car {
    // Sedan is luxury so trait specific to sedan
    private boolean leatherSeats;

    public Sedan(String brand, int year, int numberOfDoors, boolean leatherSeats) {
        super(brand, year, numberOfDoors);
        this.leatherSeats = leatherSeats;
    }

    @Override // Override allows for displayInfo to now also show the trait specific to the Sedan while still keeping the main variables
    public void displayInfo() {
        super.displayInfo(); // Reuse the displayInfo method from the superclass
        System.out.println("Leather Seats: " + leatherSeats);
    }
}

public class Main {
    public static void main(String[] args) {
        Vehicle v1 = new Truck("Ford", 2023, 10.5);
        Vehicle v2 = new Car("Toyota", 2023, 4);
        Vehicle v3 = new Sedan("Honda", 2023, 4, true);

        System.out.println("Truck Information:");
        v1.displayInfo();
        
        System.out.println("\nCar Information:");
        v2.displayInfo();
        
        System.out.println("\nSedan Information:");
        v3.displayInfo();
    }
}
Main.main(null)

One of my main contributions to the Frontend of the site was the signup and signin in page and alot of the debugging that we had to do both on the backend and frontend. Me and Drew worked closely to figure out how to work JWT and we spent multiple hours working together to fix backend connection errors and CORS errors. Using JWT was a first for both me and Drew so we both worked together to overcome this obstacle. Some problems we worked on were:

  • Wildcard error
  • Backend Database error where it would create “invisible users”
  • Runtime backend error
  • Connecting the Frontend and Backend

Blog Usage:

My Blog usage was fair, I used it primarily to record my learning and have an area to store my knowledge however, I definetly see some improvements that can be made with my current blogging system

What I am currently doing:

  • Storing important lessons and hacks Timebox
  • Planning my hacks and weekly objectives Timebox, Scrumboard
  • Recording any important class notes Timebox
  • Using it as a valuable tool for Reflections Example

Things I want to change:

  • I want to implement the same mentality as Drew (track progress for the various things by blogging them)
  • Want to create a vocab/code chart that has mini code examples (would be helpful for my own personal learning)

Right now I would say I am not utilizing my Blog to its full potential and want to change things going forward next trimester

Overall Reflection:

This trimester was really stressful overall with college applications and everything and this trimester I wasn’t very code/tangible heavy but I definetly feel myself contributing in some aspects for myself and my team

Glows:

In my previous learning experiences from CSP, I always struggled to work with my team, I would either work alone or only work with one person, one area that I definetly felt myself glow in was the collaboration aspect of this class, working with this team and helping each other out was something that I never really experienced in this class before and I felt myself actually having an impact on my team as a whole and I took away a lot of learning from this trimester and wish to keep collaborating a lot with my future teams

Another glow in my opinion was my understanding of tools and code in general. Previously i struggled with comprehending code and struggled to recall information but after constant usage of features like commenting and using external tools like ChatGPT or my peers to help me understand complex problems has helped deepen my knowledge and understanding of code in this class

Following the agile manifesto and working planned and according to a preset order but also expanding it responsibly has also been a glow for me. Previously I would just do whatever I needed to by the deadline but this trimester, setting plans and goals for myself throughout the week has definetly been one of my glows

Grows:

One of the many things I need to grow on is definetly coding more rountinely, I code whenever I feel like it and although I definetly made a large improvement in this area in the past few weeks, its something that im trying to keep going in the future.

Another thing I need to grow on is my backend skills, I feel that I have been a Frontend Developer for so long and I feel that I need to have more experience working with code in the backend and working more with Java instead of Javascript, I realized that by being a Frontend Developer, I am not really able to like expand my learning and challenge myself with a difficult topic, I have worked in basically every Scrum Position but the Backend Developer so next trimester I want to be a Backend Developer and this will also help me with my next grow

The primary problem that I want to solve that I have is showing my tangibles and their progress as well as learning, by always doing Frontend work all the time, I feel like I am not growing and learning as much as I could and instead I am holding back myself and so I want to be Backend Developer next trimester and improve on my skills of documenting progress through a tough challenge.