Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
b6ea1a4
Imported the helper functions as well as the data from the taskFuncti…
OtlotlengMajuja Apr 22, 2024
e33ad59
Fixed the ternary operator by replacing the semi-colon with a colon
OtlotlengMajuja Apr 22, 2024
f5409eb
Corrected the paths for my imports, added a comment, included a semi-…
OtlotlengMajuja Apr 23, 2024
44f6139
Used the equality operator '===' for comparison
OtlotlengMajuja Apr 23, 2024
871938b
Fixed the click event syntax by using an event listener
OtlotlengMajuja Apr 23, 2024
010afc3
Fixed the forEach loop syntax by adding "classList' methods
OtlotlengMajuja Apr 23, 2024
21e57bd
Corrected ternary operator syntax
OtlotlengMajuja Apr 23, 2024
9b1b59c
Fixed the click event syntax for the 'cancelEditBtn' element
OtlotlengMajuja Apr 23, 2024
0230a6d
Fixed the click event syntax for the 'hideSideBarBtn' element
OtlotlengMajuja Apr 23, 2024
893e47f
Fixed the click event syntax for the 'showSideBarBtn' element
OtlotlengMajuja Apr 23, 2024
04914f6
Added to my elements object, specified the ID in line 54 by adding a #
OtlotlengMajuja Apr 24, 2024
5714c36
Added an event listener to fix the click event syntax
OtlotlengMajuja Apr 24, 2024
95f2017
Fixed the equality operator '===' for comparison
OtlotlengMajuja Apr 24, 2024
f6f6c85
Specified the elements for the navigation sidebar, and the primary la…
OtlotlengMajuja Apr 24, 2024
4502b18
Completed the elements for the nav sidebar, header and add task butto…
OtlotlengMajuja Apr 24, 2024
197e32c
Specified the filter div
OtlotlengMajuja Apr 24, 2024
b59dbd5
Completed assigning the key:value pairs for the main area of the task…
OtlotlengMajuja Apr 24, 2024
7d5708e
Completed the key:value pairs for the new task modal
OtlotlengMajuja Apr 24, 2024
7520f00
Completed the key:value pairs for the edit task modal
OtlotlengMajuja Apr 24, 2024
a449311
Removed the #
OtlotlengMajuja Apr 24, 2024
21ea012
Included a variable with the titles for each column
OtlotlengMajuja Apr 24, 2024
9d081be
Included a variable that represents the status of a task
OtlotlengMajuja Apr 24, 2024
e67c8a5
Appended taskElement to tasksContainer, to ensure that the newly crea…
OtlotlengMajuja Apr 24, 2024
9ebc8b2
Corrected the import file, removed the call functions, changed from f…
OtlotlengMajuja Apr 24, 2024
f813216
Retrieved values from the browser's local storage
OtlotlengMajuja Apr 24, 2024
fc79a96
Set the 'titleInput" variable to capture the value entered in an inpu…
OtlotlengMajuja Apr 24, 2024
01a1475
Set the descInput variable to capture the value entered in a textarea…
OtlotlengMajuja Apr 24, 2024
4a385e2
Set the 'selectStatus' variable to capture the selected value from a …
OtlotlengMajuja Apr 24, 2024
188a3ab
Completed the functionality of the 'task' object
OtlotlengMajuja Apr 24, 2024
016a975
Completed the 'toggleSideBar' function, allowing it to control the vi…
OtlotlengMajuja Apr 24, 2024
46870bd
Got the current theme from the local storage or set it to default
OtlotlengMajuja Apr 24, 2024
a0b3051
Set the SVG source based on the current mode
OtlotlengMajuja Apr 24, 2024
eb77285
Removed a comment
OtlotlengMajuja Apr 24, 2024
eb7f6b1
Set a variable to toggle between different themes
OtlotlengMajuja Apr 24, 2024
82b6473
Corrected the referencing
OtlotlengMajuja Apr 24, 2024
20465c0
Set the user's preferences in the local storage
OtlotlengMajuja Apr 24, 2024
10b8059
Included a line that handles the toggling between modes
OtlotlengMajuja Apr 24, 2024
161f56d
Included a line that would update the logo based on the selected mode
OtlotlengMajuja Apr 24, 2024
c5b91f4
Ensured that the selected mode would be stored in localStorage
OtlotlengMajuja Apr 24, 2024
2940fe7
Ensured that the corresponding SVG was stored in local storage
OtlotlengMajuja Apr 24, 2024
5c6056f
Set the 'value' property to populate task's title in the input field …
OtlotlengMajuja Apr 24, 2024
6c06b9a
Set the value of the 'editTaskDescInput' element to populate the desc…
OtlotlengMajuja Apr 24, 2024
898484e
Set the 'value' property of the "editSelectStatus' element to select …
OtlotlengMajuja Apr 24, 2024
567540f
Retrieved the button elements in order to delete tasks 'deletetaskBtn…
OtlotlengMajuja Apr 24, 2024
bbd350b
Included comments for the variables
OtlotlengMajuja Apr 24, 2024
12e8149
Called saveTaskChanges upon click of Save Changes button to save the …
OtlotlengMajuja Apr 24, 2024
2a1d822
Included an event listener that triggers deletion of specified task '…
OtlotlengMajuja Apr 24, 2024
cdc49ca
Included a comment
OtlotlengMajuja Apr 24, 2024
635f510
Retrieved the task ID from the local storage
OtlotlengMajuja Apr 24, 2024
362e495
Retrieved the value entered to allow users to input or edit the title…
OtlotlengMajuja Apr 24, 2024
039ced6
Added a user input that allows users to input or edit description or …
OtlotlengMajuja Apr 24, 2024
6a1874c
Included the 'selectStatus' user input so that the user could choose …
OtlotlengMajuja Apr 24, 2024
2147476
Created an object 'updatedtask' that updates the information for a ta…
OtlotlengMajuja Apr 24, 2024
1d81c0a
Included a function that took two arguments to update tasks identifie…
OtlotlengMajuja Apr 24, 2024
d2657b8
Added the 'displayStoredTasks' function to retrieve the tasks from th…
OtlotlengMajuja Apr 24, 2024
321352c
Parsing the JSON string to an array of tasks
OtlotlengMajuja Apr 24, 2024
17c38f8
Logged the tasks to the console in the if statement
OtlotlengMajuja Apr 24, 2024
4613d73
Completed the if-else statement to console a statement when no tasks …
OtlotlengMajuja Apr 24, 2024
e2d3e9d
Calling the function to display stored tasks
OtlotlengMajuja Apr 24, 2024
579cb25
Included an if statement to check ensure the correct logo image is di…
OtlotlengMajuja Apr 24, 2024
2f70470
Corrected any bugs in order to get the application almost entirely fu…
OtlotlengMajuja Apr 24, 2024
fb52459
Completed the Intro for my README.md
OtlotlengMajuja Apr 25, 2024
5b22e23
Completed the elements section
OtlotlengMajuja Apr 25, 2024
bdf848f
Completed the reflections section
OtlotlengMajuja Apr 25, 2024
283883f
Completed the challenges section
OtlotlengMajuja Apr 25, 2024
725104f
Completed the learning experience section
OtlotlengMajuja Apr 25, 2024
a7c1ca2
Included user stories
OtlotlengMajuja Apr 25, 2024
9a14882
Rnamed the README.md and deleted the instructional one
OtlotlengMajuja Apr 25, 2024
2109daf
Included the link for my LOOM video, and uncommented the 'displayStor…
OtlotlengMajuja Apr 25, 2024
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
74 changes: 24 additions & 50 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,66 +1,31 @@
### [JSL11] Agile Board - Kanban Task Management App
# JSL11: Portfolio Piece: Agile Board - Kanban Task Management App

Welcome to the Agile Board project, the final project for the JSL course! In this portfolio piece project, you will be stepping into the shoes of a juniour developer tasked with bringing a Kanban Task Management App to life. You're not starting from scratch, though. In this project, you are tasked with tackling the provided user stories to both identify and fix bugs in the code, as well as to develop your own functions to extend the application's capabilities. Key assignments include importing utility functions, initializing data, and diving into debugging tasks such as setting up data correctly in local storage, dynamically displaying boards and tasks, and enhancing user interactions.
**LOOM video link:** [https://www.loom.com/share/598da8757e9648289d5f563aaadeb155?sid=ed38ce5b-51ee-4536-9b4a-3333e1d5c6b6]

Additionally, you will enhance the application by crafting code to meet specific functionalities outlined in the user stories, like managing task details and their lifecycle, toggling theme customization, and ensuring the persistence of data through local storage. This blend of debugging and creative coding invites you to apply your critical thinking and problem-solving skills in a hands-on manner, equipping you for the intricacies of real-world software development scenarios.
# Introduction

We're providing you with a head start:
The task was to use the provided user stories to identify and fix bugs in the code, as well as to develop our own functions to extend the application's capabilities. The goal was to enhance the application by crafting code to meet specific functionalities outlined in the user stories, like managing task details and their lifecycle, toggling theme customization, etc.

- **Starter Code**: You will receive starter code for the user interface (UI) of the application. This includes the basic layout and some of the JavaScript (JS) functionality needed to make the app interactive.
# Elements Included

- **Your Mission**: Your main task is to complete the app by implementing the features described in the provided user stories. These stories outline the functionality that users expect from the app, such as adding, editing, and deleting tasks, as well as customizing themes and managing the task lifecycle.
Some of the elements in this project were buttons, input fields, modal elements, header elements, and sidebar elements.

- **🪲Important Note on Debugging🚨:** In the sections of the project where you are tasked with debugging the code, *it's crucial to focus on identifying and correcting errors within the existing functions rather than undertaking a complete refactoring of the code.* This means you will need to carefully analyze the provided starter code to pinpoint syntax errors, logical mistakes, or any bugs that prevent the application from functioning as intended. **The goal is to improve and repair the codebase by making precise adjustments, ensuring that the original structure, function logic and intended functionality are preserved.** This approach not only aligns with the project's requirements but also hones the essential skill of debugging— a critical competency for any developer.
# Reflections

### Walkthrough by Coach Kenneth
# Areas of Mastery

Jump into the walkthrough of the project and starter code here: https://www.youtube.com/watch?v=aD8Wx9PGYSc
**Task Management:** I believe I was able to maneouvre through creating, editing, deleting, and displaying the tasks according to their boards and status proficiently.

### Project Overview
# Challenges Faced

As a newly hired developer at Agile Board, a fictional company specializing in innovative task management solutions, you'll embark on an exciting journey to enhance their flagship Kanban Task Management App.
I think this was so far the most demanding project to complete. There were many challenges, one of them being managing the data in localStorage, and ensuring the correct selection and manipulation of DOM elements.

![alt text](assets/JSL11_solution.gif)
# Overall Learning Experience

Your journey through this project will involve several key activities:
Having to fix all the bugs while combining what little UI styling knowledge I have with concepts like DOM manipulation, UI/UX implementation, and event handling almost had me at my breaking point but opened my eyes to daily activities in industry and helped me build on my troubleshooting and overall coding skills.

1. **Exploring the Starter Code**: Begin by familiarizing yourself with the UI and JS functionality we've provided. This will give you a solid understanding of the project's current state and what needs to be done.
2. **Completing User Stories**: Dive into the user stories, which are your roadmap to completing the project. Each story is a feature or functionality that your app needs to support. Your goal is to write the JS code necessary to bring these stories to life.
3. **Testing and Debugging**: As you implement each feature, test your app to ensure it works as expected. Debug any issues that arise to ensure a smooth user experience.
4. **Reflecting on Your Work**: Once you've completed the user stories, take a step back and review your app. Consider the challenges you faced, what you learned, and how you might improve the app further.
# User Stories: Task Interaction and Detail Management

This project is designed to be both challenging and rewarding, providing you with hands-on experience in web development. By the end, you'll have a functional Kanban Task Management App that you can showcase in your portfolio. Ready to get started? Let's dive in!

## What You Need to Do:

To complete this challenge, follow these steps:

1. Clone the provided Starter Code Repository to your local development environment: [Starter Code Repository](https://github.com/CodeSpace-Academy/Final_Project_StudentNo_Classcode_Group_Name-Surname_JSL11).
2. Open the cloned project in your code editor.
3. Code your solution to the user stories.
4. Commit your changes to your local Git repository with meaningful commit messages.
5. Push your local Git repository to your GitHub account.
6. Verify that the changes have been successfully pushed to your GitHub repository.

🚨 Make sure that you clear the localStorage as you are building your project. This will help with checking that the tasks are loading correctly.

![alt text](assets/clear-localStorage.gif)



## What You Need to Include:

1. Ensure that your code includes the necessary modifications to meet the challenge requirements.
2. Your GitHub repository should contain the updated code files.

# Agile Board Project Feature List

In this Agile Board Project Feature List, you're introduced to a comprehensive suite of functionalities designed to enrich your Kanban Task Management App.

As you embark on implementing these features, remember the value of tackling the project one small task at a time. This approach not only makes the process more manageable but also ensures that you can focus on the quality of each feature, leading to a more robust and user-friendly application. Your journey through this project is a great opportunity to apply and hone your skills, so take it step by step and enjoy the learning experience.

![alt text](assets/task-management-feature.gif)
# Task Interaction and Detail Management
- **Clicking an Individual Task for Details**: As a user, I want to click on an individual task so that I can view its details and make edits if necessary.
- **Opening the Task Edit Modal**: As a user, I want to open a modal window when adding or editing tasks to easily input task information.
- **Updating the Task Title**: As a user, I want to update the task title within the modal to change how it’s displayed on the board.
Expand All @@ -75,22 +40,29 @@ As you embark on implementing these features, remember the value of tackling the
- **Viewing Task Details**: As a user, I want to view detailed information about a task to understand its scope and requirements fully.

![alt text](assets/delete-feature.gif)

# Task Deletion and Confirmation Mechanisms

- **Clicking "Delete Task" Button**: As a user, I want to click a "Delete Task" button within the task edit modal so I can remove tasks that are no longer necessary.
- **Immediate UI Update on Task Deletion**: As a user, I expect a task to disappear from the UI immediately after I confirm its deletion to reflect the current state of my task list.
![alt text](<assets/Theme Customization.gif>)
![alt text](<assets/Theme Customization.gif>)

# Theme Customization

- **Switching to Dark Mode**: As a user, I want to switch to dark mode so that I can reduce eye strain in low-light conditions.
- **Switching Back to Light Mode**: As a user, I want to switch back to light mode from dark mode to better suit bright environments and see the logo update accordingly.

![alt text](assets/sidebar-feature.gif)

# Managing the Sidebar

- **Hiding the Side Bar for More Workspace**: As a user, I want the ability to hide the side bar to gain more workspace.
- **Opening the Side Bar for Navigation and Options**: As a user, I want to easily open the side bar to navigate between boards.

![alt text](assets/add-task-feature.gif)

# Task Lifecycle Management

- **Clicking "Add New Task" to Start Adding a Task**: As a user, I want to click the "Add New Task" button so I can begin the process of adding a new task to my board.
- **Modal Opens for New Task Input**: As a user, I expect the modal to open when I click "Add New Task" to provide me with a form to input the task's details.
- **Adding a Title to the New Task**: As a user, I want to be able to add a title to my new task so I can clearly identify it on the board.
Expand All @@ -102,7 +74,9 @@ As you embark on implementing these features, remember the value of tackling the
- **Editing New Task Details**: As a user, I want to edit the details of the New Task to correct or update information as needed.

![alt text](assets/localStorage-feature.gif)

# Local Storage and Data Persistence

- **Saving New Tasks in localStorage**: As a user, I want my newly created tasks to be saved in localStorage so that my tasks persist even when I close or refresh the browser.
- **Reflecting Task Updates in localStorage**: As a user, I expect tasks that I update to have their changes reflected in localStorage so that any modifications are not lost.
- **Removing Deleted Tasks from localStorage**: As a user, I want tasks that I delete to be removed from localStorage so that my task list remains accurate and up-to-date.
Loading