IssueManager is an application built with Angular 14 and AppWrite. It's a small kanban management tool inspired by GitHub Projects, which make use of some Appwrite features like Account, Database, Realtime, Functions, Storage and Teams.
I took the opportunity of this hackathon to create a project different from the usual clones, with the purpose of learning how Appwrite works and to try the newest Angular features in a real world application 😊.
A kanban management tool made with Angular and AppWrite
⚠️ READ THIS
This project is a demo, born mainly to test Appwrite integration with Angular experimental features, and it's not ready for production! The site currently online is a test and will be discontinued soon. Once discontinued, you will need to self-host appwrite to try the application
IssueManager is an application built with Angular 14 and AppWrite for the AppWrite Hackathon.
The frontend is built with Angular 14 using entirely the new Standalone Component feature. angular/angular#43784
WYSIWYG editor is built with Lexical from Meta and…
The frontend is built with Angular 14 using Standalone Components. https://github.com/angular/angular/discussions/43784
For Angular users, this mean that this application is built entirely without modules, although I had to come up with some workarounds to get all the libraries that don't fully support it work properly.
IssueManager authentication system is entirely based on Appwrite, and currently supports login and registration via Email/Password, Google and Github.
Each authenticated user has the possibility to create a new project to IssueManager. A project is a kanban board where you can track your tasks.
Creating a project involves a series of processes to create the user's workspace, in fact thanks to an Appwrite function that will first craete a new Appwrite Team where the user which has created the project is the owner, next it will create a new Appwrite Storage Bucket where users can upload their files, then it will finally creates the
Project entity to the database.
A project can be either public or private. When creating a public project, every user is able to view it even if it cannot update it. Private projects, on the other hand, can only be seen and updated by team members.
The Realtime feature is used to update automatically the list of available projects in the case that the project is deleted or if his visibility changes, in order to notify all users
After creating a new project, users can access the board and can start to manage their tasks. Thanks to Appwrite realtime, each user which is visiting the board at that time will always have the updated issues on their screen.
Users have the possibility to create, archive or re-order a new Category, then to create and move the Tasks inside just like a Kanban board. The ordering is made with JIRA LexoRanks in order to optimize the performances and database requests.
Users which have the authorities to update the board can also invite new members and allow them to view the board. Once the user's e-mail in question has been entered, it will be sent to his mailbox and must be accepted to enable the user for the project.
Each created task of the kanban board can be readed and updated. Users can manage their task updating the expiration date, priority and also the description. The WYSIWYG is made with
lexical-angular (Angular binding for lexical, which is currently a private repo in development, but already available to NPM.
Thanks to Appwrite Storage, the user has the possibility to manage the attachments of a task. Attachments consists of uploaded files that can be downloaded, deleted or viewed (if the preview is
A live deployment of the app is available to try it out. You must login to access the application pages but you are able to delete your account if you need to.