Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

To-Do-Project #35

Open
wants to merge 50 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
753f866
- added first components and used zustand
gittebe Nov 19, 2024
b876979
- styled component
gittebe Nov 19, 2024
ec468c0
- reworked on the Card and Submit Logic
gittebe Nov 20, 2024
b833f57
- added toggleForm and showForm to the Global State Zustand
gittebe Nov 20, 2024
2a82bcf
-
gittebe Nov 20, 2024
85f43e3
- added task counter
gittebe Nov 20, 2024
d878cb0
- replaced former buttons with checkbox
gittebe Nov 20, 2024
88836fe
- styled checkBox and Card
gittebe Nov 20, 2024
b6534b2
- added netlify link
gittebe Nov 20, 2024
55e3c98
- added project Card, styled todoCard, added button
gittebe Nov 20, 2024
afe0c05
- worked on styles
gittebe Nov 20, 2024
4530c87
- added bin image button
gittebe Nov 21, 2024
66263ac
- styled the todocard
gittebe Nov 21, 2024
cade1ee
- worked on CSS
gittebe Nov 21, 2024
9613ffa
- worked on CSS
gittebe Nov 21, 2024
5ff8127
- added Zustand for ProjectCard
gittebe Nov 21, 2024
06979f7
- added swipable project cards
gittebe Nov 21, 2024
dd38fef
- added bin button for project cards
gittebe Nov 21, 2024
5b8e1b8
- added project counts
gittebe Nov 21, 2024
2d88aad
- worked on projectstore and card
gittebe Nov 24, 2024
a365849
-added img in case no project and/or no to do has been written
gittebe Nov 24, 2024
3b873cd
- added README
gittebe Nov 24, 2024
4d8a40f
- added max-width for card
gittebe Nov 24, 2024
976afef
- cleaned code
gittebe Nov 24, 2024
313c7e5
- added new img
gittebe Nov 26, 2024
6887983
- deleted one button and step to choose
gittebe Nov 26, 2024
b455034
- changed order of components
gittebe Nov 26, 2024
a3775a4
- added to display completed projects
gittebe Nov 26, 2024
37e0632
- worked styles
gittebe Nov 26, 2024
11f0538
- cleaned code
gittebe Nov 26, 2024
2d8f6be
- worked on design
gittebe Nov 27, 2024
d7355ac
- added toggleTheme in Zustand and toggle Btn
gittebe Nov 27, 2024
fc51d46
- added toggle theme to form
gittebe Nov 27, 2024
359c6d2
- worked on toggle theme in different components
gittebe Nov 28, 2024
7e02e9c
- added theme toggle for project part
gittebe Nov 28, 2024
baffb8f
- worked on responsiveness
gittebe Nov 28, 2024
aa0625e
- worked on header style
gittebe Nov 28, 2024
4c3b5ee
- worked on responsiveness
gittebe Nov 28, 2024
9d4cc9b
- cleaned code
gittebe Nov 28, 2024
ee6bc59
- config for typescript
gittebe Nov 28, 2024
5862bd2
- worked in ts config.json
gittebe Nov 28, 2024
60b5029
- converted files from jsx to tsx
gittebe Nov 28, 2024
e0b360c
- worked on stores to convert into tsx
gittebe Nov 29, 2024
716f92f
- worked on store
gittebe Nov 29, 2024
a03b223
- turned projectstore into ts/ adding types and added local storage
gittebe Nov 29, 2024
32bcba2
- changed bin button into tsx
gittebe Nov 29, 2024
f730c0f
- added type for check box props
gittebe Nov 29, 2024
1846b8d
- added types to-do button
gittebe Nov 29, 2024
c15e0b3
- cleaned code
gittebe Nov 29, 2024
71bfa23
- worked on README file
gittebe Nov 29, 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
67 changes: 44 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,58 @@
<h1 align="center">
<a href="">
<img src="./src/assets/banner.svg" alt="Project Banner Image">
</a>
</h1>
# Project Description
This project is a task management application built with React and Zustand. It includes two main sections: a Project Tracker and a To-Do List, allowing users to add, remove, and toggle tasks as completed. The state of both sections is managed using Zustand.

# Todo - useContext Project
# Features
## Projects Section:
Add new projects with unique IDs.

Replace this readme with your own information about your project.
Remove projects by ID.

Start by briefly describing the assignment in a sentence or two. Keep it short and to the point.
Toggle project completion status.

## Getting Started with the Project
Display a list of projects, with the ability to mark each as completed.
## To-Do Section:

### Dependency Installation & Startup Development Server
Add new tasks.

Once cloned, navigate to the project's root directory and this project uses npm (Node Package Manager) to manage its dependencies.
Remove tasks by ID.

The command below is a combination of installing dependencies, opening up the project on VS Code and it will run a development server on your terminal.
Toggle task completion status.

```bash
npm i && code . && npm run dev
```
Option to show or hide the task creation form.

### The Problem
Persistence via localStorage to retain tasks between sessions.

Describe how you approached to problem, and what tools and techniques you used to solve it. How did you plan? What technologies did you use? If you had more time, what would be next?
# Tech Stack
React: The user interface is built with React, providing a component-based architecture for rendering the project and task lists.

### View it live
Zustand: Zustand is used for global state management. The state is split into two stores (useProjectStore and useToDoStore), enabling the management of projects and tasks separately.

useProjectStore manages projects.

useToDoStore manages to-do items and includes persistence using the Zustand middleware persist.

CSS: Custom styles for layout and design, including separate styles for Project and To-Do Cards (ProjectCard.css, ToDoCard.css).

localStorage: For the To-Do section, tasks are saved to local storage, ensuring they persist even after a page refresh.

# Improvements
To further enhance this project, there are several areas that I would like to work on:

Every project should be deployed somewhere. Be sure to include the link to the deployed project so that the viewer can click around and see what it's all about.
## Improve UI Structure:

## Instructions
Currently, the submit button for adding tasks is placed within the content area. To improve user experience and accessibility, it would be better to move the button to the header or at least position it at the top of each section. This way, users can easily access the action to add new projects or tasks without scrolling down.

<a href="instructions.md">
See instructions of this project
</a>
## Add Deadlines to Projects and To-Dos:
A valuable feature would be the ability to set a deadline for each project or to-do item. This can be achieved by adding a date picker or calendar UI to allow users to select a deadline when adding a new project or task. The deadline could then be displayed alongside the task, and the system could even include a way to visually indicate overdue tasks for better management.

## Add Project Tasks with Checkboxes:
Currently, the project list only tracks a simple project title with a completion status. To improve task tracking within projects, it would be useful to allow users to add sub-tasks or tasks under each project. These tasks would have individual checkboxes for marking completion. This way, users could break down larger projects into smaller, manageable tasks, providing more granular control over project progress.

## Task Prioritization and Sorting:
Adding priority levels (e.g., High, Medium, Low) to both projects and to-dos would help users prioritize their tasks. Additionally, introducing sorting functionality (by deadline, priority, or completion status) would make it easier to organize tasks and projects based on user preferences.

## Notifications or Alerts:
Integrating notifications for approaching deadlines or overdue tasks would further improve the app's utility. This can be implemented either via browser notifications or by highlighting overdue tasks in the UI to ensure users don't miss important deadlines.

### View it live
https://gittes-to-do-list-application.netlify.app/
23 changes: 13 additions & 10 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Todos App Context API</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>

<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Todos App Context API</title>
</head>

<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>

</html>
Loading