Git Product home page Git Product logo

donet's Introduction

Donet

A full-stack task management app built with React & Supabase.

App Screenshot

Table of contents

Introduction

I built this project (the last one in my portfolio) with the purpose of applying all of the knowledge acquired from my two previously developed projects corteza and one plate. The concept of this app is simple, a task management app where you can keep your tasks saved and organized in one place.

Features

  • Authentication with Supabase.
  • CRUD your boards, templates and tasks.
  • Drag and drop.
  • Light/Dark mode.
  • Responsive Design.

How does it work?

  1. Login or register an account if you don't have one.
  2. Once you've logged in to the app, create your first board.
  3. Within this board, you can create templates, which are the columns that will be used to group your tasks.
  4. Create your first task, a task can contain the following fields: title, description, subtasks, and the template it will belong to.
  5. Click on your task to display a full summary of it and to access the options to modify it.
  6. Drag and drop your tasks between templates at your convenience.
  7. Once you have completed a task, you can delete it, just as you can do with your templates and boards.

Demo

Here is the link to the working app: https://donet.vercel.app/

Technologies

  • Vite - Frontend tool to set up a development environment for frameworks like React.
  • Supabase - The open source Firebase alternative designed to help developers spin up their backend.
  • Chakra UI - Simple, modular and accessible component library that gives you the building blocks you need to build your React applications.
  • React Router - The standard library for client-side routing in React.
  • React Beautiful DND - Beautiful and accessible drag and drop for lists with React.
  • React Hook Form - Performant, flexible and extensible forms with easy-to-use validation.
  • Zod - TypeScript-first schema validation with static type inference.
  • React Query - Powerful asynchronous state management for TS/JS, React, Solid, Vue and Svelte.

Lessons Learned

  • I learned that keeping things in sync with the backend isn't always an easy task. Maintaining the correct order of tasks when a user drags and drops a task between templates was the biggest challenge of this project. I had to send an update to the server for all the reordered tasks in both templates and could not wait for the response to arrive as the update on the frontend had to happen instantly. I managed to solve this by implementing optimistic updates with the help of React Query.
  • Although Supabase facilitates much of the work involving the backend so I can focus more on the frontend, I definitely had to dig into some of the concepts that come with it, such as database schemas, security rules, auth tokens, and more; giving me a clear picture of how everything is connected between both worlds.
  • Got fascinated by the way of working with Chakra UI, a component library based on a design system that you can customize to fit your needs. Tons of time saved by using this beautiful library.
  • React query was a game-changer for me, the way it simplifies data fetching, error handling, caching, and server state management made my workflow a lot easier.

Feedback

If you wish to provide any feedback or just to have a little chat you can contact me through the following email: [email protected].

donet's People

Contributors

joangavelan avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.