Krello is a task management app built with SvelteKit, Appwrite, Flowbite and Tailwind. It's a clone of the popular task management application Trello. You can visit the app here.
Drag and Drop Tasks: Rearrange and organize tasks easily by dragging and dropping them within the board. Keep task statuses up-to-date effortlessly.
Public and Private Boards: Accessible to all users, public boards are for sharing while private boards are reserved for team members only.
Anonymous Login: Dive into task management and project collaboration without the need for an account. Experience quick and hassle-free access.
Enhanced Editing with Quill: Utilize the powerful Quill rich text editor to create visually appealing and well-structured task descriptions. Add formatting for effective communication.
Real-time Comments and Collaboration: Engage in real-time collaboration and feedback by leaving comments on tasks, promoting seamless teamwork.
Assign Labels, Priority, & Descriptions: Categorize tasks with labels, set priorities to indicate importance or urgency, and add descriptions for comprehensive task information
To get started, clone this repository and install the dependencies using pnpm
or yarn
or npm
:
git clone https://github.com/iamrishupatel/trello-clone.git
cd trello-clone
pnpm install
A. Login and create the project
B. Initialize Auth
C. Setup Database
Note: Don't forget to update the collection permissions so authorized users are allowed to update collections. This also is required to create users in the user collection. For more information about Appwrite collection permissions see their documentation
D. Add following attributes in the tables
Note: Appwrite cloud uses apprite v1.1.2 as of AUG 2023 and doesn't support relations
User Collection Attributes
Key | Type | Default Value |
---|---|---|
name (required) | string | |
email (required) | string | |
bio | string | |
username | string | |
displayPicture | string | |
myBoards | string |
Board Collection Attributes
Key | Type | Default Value |
---|---|---|
isPrivate | boolean | - |
name | string | - |
owner (required) | string | - |
coverURL | string | - |
members | string[] | - |
teamId | string | - |
description | string | - |
Label Collection Attributes
Key | Type | Default Value |
---|---|---|
text | string | - |
color | string | - |
Priority Collection Attributes (NOT REQUIRED)
Key | Type | Default Value |
---|---|---|
text | string | - |
color | string | - |
As of now this collection is not being use and all priorities are hardcoded in the app. But may be used in future.
Status Collection Attributes
Key | Type |
---|---|
text (required) | string |
status are hardcoded in the appwrite db
Statuses are Backlog
, Todo
, Inprogress
,InReview
, Done
and must be added in DB.
At this time statuses can't be created from client app.
Task Collection Attributes
Key | Type | Default Value |
---|---|---|
title (required) | string | - |
boardId (required) | string | - |
description | string | - |
coverUrl | string | - |
status (required) | string | - |
prevStatusId (required) | string | - |
labels | string[] | - |
priority | string | - |
Comment Collection Attributes
Key | Type | Default Value |
---|---|---|
body (required) | string | - |
author (required) | string | - |
taskId (required) | string | - |
isEdited | boolean | - |
E. Setup Storage Buckets
After appwrite setup is done dependencies are installed with pnpm install
(or npm install
or yarn
).
Create an .env.local
file and copy the contents of .env.example
and add all the required values.
Start a development server:
pnpm run dev
# or start the server and open the app in a new browser tab
pnpm run dev -- --open
To create a production version of your app:
pnpm run build
You can preview the production build with pnpm run preview
.
To deploy your app, you may need to install an adapter for your target environment.
We're thrilled that you're interested in contributing to Krello! Your contributions help make this project better for everyone. Here's how you can get involved:
If you come across a bug or have an idea for a new feature, please open an issue on our GitHub repository. Make sure to provide as much detail as possible so that we can understand and address the issue or feature request effectively.
If you want to contribute directly to the codebase, follow these steps:
git checkout -b feat/feature-name
or git checkout -b fix/fix-name
.Before submitting a pull request, please ensure:
We appreciate your contributions and will review your pull request as soon as possible. Please be patient as we work through the review process. If any changes are needed, we'll provide feedback.
If you're not able to contribute directly through code, you can still contribute by spreading the word about Krello! Share the project with others who might be interested, and consider giving us a star on GitHub to show your support.
The designs used in this Project are based on ideas from devchallenges.io. Although we've made adjustments to fit our needs, they're mostly inspired by what we found there.
This project was generated using the Sveltekit Starter Template.