{"id":21922843,"url":"https://github.com/martinwebdev95/kanban","last_synced_at":"2026-04-12T09:04:45.818Z","repository":{"id":168597864,"uuid":"637761975","full_name":"MartinWebDev95/Kanban","owner":"MartinWebDev95","description":"Fully-functional task management web app with a light/dark mode toggle.","archived":false,"fork":false,"pushed_at":"2024-06-18T07:14:38.000Z","size":632,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-27T10:43:42.356Z","etag":null,"topics":["frontend-mentor-challenge","javascript","react-hook-form","react-router","reactjs","supabase","tailwindcss","vercel-deployment","vitejs"],"latest_commit_sha":null,"homepage":"https://kanban-martinwebdev95.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MartinWebDev95.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-08T11:02:44.000Z","updated_at":"2024-06-18T07:14:41.000Z","dependencies_parsed_at":"2024-03-13T12:30:01.789Z","dependency_job_id":"9f7dabcc-5eb8-4c50-8774-f3d290502b53","html_url":"https://github.com/MartinWebDev95/Kanban","commit_stats":null,"previous_names":["martinwebdev95/kanban"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinWebDev95%2FKanban","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinWebDev95%2FKanban/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinWebDev95%2FKanban/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinWebDev95%2FKanban/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MartinWebDev95","download_url":"https://codeload.github.com/MartinWebDev95/Kanban/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244945623,"owners_count":20536297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["frontend-mentor-challenge","javascript","react-hook-form","react-router","reactjs","supabase","tailwindcss","vercel-deployment","vitejs"],"created_at":"2024-11-28T21:07:29.315Z","updated_at":"2026-04-12T09:04:45.813Z","avatar_url":"https://github.com/MartinWebDev95.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[Button Language]: https://img.shields.io/badge/Leer%20En%20Español-000000?style=for-the-badge\n\n[![Button Language]](https://github.com/MartinWebDev95/Kanban/blob/master/README.md)\n\n# Kanban Task Management\n---\n\n[Button Kanban]: https://img.shields.io/badge/Kanban%20Web-0B5B9E?style=for-the-badge\n\nTask management web application where you can create, edit and delete tables, task statuses, the tasks themselves and their subtasks if they have them.\n\n[![Button Kanban]](https://kanban-eight-fawn.vercel.app/)\n\n## 👨🏽‍💻 What technologies I have used?\n---\n\n[Button Vercel]: https://img.shields.io/badge/Deploy%20on%20Vercel-000000?style=for-the-badge\u0026logo=vercel\n[Button Supabase]: https://img.shields.io/badge/Supabase-000000?style=for-the-badge\u0026logo=supabase\n[Button React]: https://img.shields.io/badge/React-000000?style=for-the-badge\u0026logo=react\n[Button Tailwind]:https://img.shields.io/badge/Tailwind%20CSS-000000?style=for-the-badge\u0026logo=tailwindcss\n[Button React Router]:https://img.shields.io/badge/React%20Router-000000?style=for-the-badge\u0026logo=react-router\n[Button React Hook Form]:https://img.shields.io/badge/React%20Hook%20Form-000000?style=for-the-badge\u0026logo=react-hook-form\n[Button Vite]:https://img.shields.io/badge/Vite-000000?style=for-the-badge\u0026logo=vite\n[Button ESLint]:https://img.shields.io/badge/ESLint-000000?style=for-the-badge\u0026logo=eslint\n\n[![Button React]](https://react.dev/)\n[![Button Supabase]](https://supabase.com/)\n[![Button Tailwind]](https://tailwindcss.com/docs/installation)\n[![Button React Router]](https://reactrouter.com/en/main)\n[![Button React Hook Form]](https://www.react-hook-form.com/)\n[![Button Vite]](https://vitejs.dev/)\n[![Button ESLint]](https://eslint.org/)\n[![Button Vercel]](https://vercel.com/)\n\n- **React:** I have used React as the project framework, creating different components, several contexts, different pages and several custom hooks. \n\n- **Supabase:** I have used Supabase for authentication through Google, authentication with the Demo User and to be able to do a CRUD with the different tables, task states, tasks and subtasks.\n\n- **Tailwind CSS:** I have used TailwindCSS to style the different components.\n\n- **React Router:** I have used React Router to create the different routes that the website has, since React does not have an integrated router like other frameworks.\n\n- **React Hook Form:** I have used React Hook Form for validation of all forms as it reduces the amount of code you need to write while removing unnecessary re-renders.\n\n- **Vite JS:** I have used Vite JS as a build tool.\n\n- **ESLint:** I have used ESLint to follow the Airbnb style guide in the project code.\n\n## 📸 Some Screenshots!\n---\n\n![Login Page Screenshot](https://github.com/MartinWebDev95/Kanban/blob/master/public/assets/screenshots/loginPage.png)\n\n![Main Page Screenshot](https://github.com/MartinWebDev95/Kanban/blob/master/public/assets/screenshots/mainPage.png)\n\n![Task Screenshot](https://github.com/MartinWebDev95/Kanban/blob/master/public/assets/screenshots/task.png)\n\n![New Board Screenshot](https://github.com/MartinWebDev95/Kanban/blob/master/public/assets/screenshots/newBoard.png)\n\n![New Task Screenshot](https://github.com/MartinWebDev95/Kanban/blob/master/public/assets/screenshots/newTask.png)\n\n![Delete Task Screenshot](https://github.com/MartinWebDev95/Kanban/blob/master/public/assets/screenshots/deleteTask.png)\n\n![Light Main Page Screenshot](https://github.com/MartinWebDev95/Kanban/blob/master/public/assets/screenshots/lightMainPage.png)\n\n![Light Task Screenshot](https://github.com/MartinWebDev95/Kanban/blob/master/public/assets/screenshots/lightTask.png)\n\n## 🗃️ Project Structure\n---\n\nThis is the structure that I have used for this project:\n\n```text\n/\n├── public/\n│   └── assets/\n│       └── image.png\n│\n├── src/\n│   ├── components/\n│   │   └── index.jsx\n│   ├── context/\n│   │   └── Context.jsx\n│   ├── helpers/\n│   │   └── helper.js\n│   ├── hooks/\n│   │   └── useHook.js\n│   ├── pages/\n│   │   └── index.jsx\n│   └── services/\n│       └── getData.js\n└── package.json\n```\n## 👀 Where you can find me?\n---\n\n[Button Portfolio]: https://img.shields.io/badge/Visita%20mi%20Portfolio-000000?style=for-the-badge\n[Button Linkedin]: https://img.shields.io/badge/LinkedIn-0A66C2?style=for-the-badge\n\n[![Button Portfolio]](https://portfolio-martinwebdev95.vercel.app/en)\n[![Button Linkedin]](https://www.linkedin.com/in/jamartindev/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartinwebdev95%2Fkanban","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmartinwebdev95%2Fkanban","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartinwebdev95%2Fkanban/lists"}