A simple and user friendly project management application with support for multiple Orgs and RBAC
View Demo
·
Report Bug
·
Request Feature
·
Blog
Compito is a simple and easy to use project management application with support for Multiple orgs. Each org can have multiple projects in it. Users can be then given access to the org or the project by assigning them different roles.
Each project can have multiple boards to manages different parts of the project. Making it easy to maintain.
The home page gives you an overview of the tasks, and projects the user has access to. The user can see tasks that were recently created and the high priority tasks as well.
There are quick links to get to projects and boards from the home page.
With a simple Kanban board, you can easily track your tasks and assign it to different users within the project. You can create new tasks with ease. Cards can be dragged and dropped as you progress.
Attachment can be added to task by just dragging and dropping in to the modal.
User can be part of multiple orgs. User can view all the orgs he/she is part of. The user can only access the data of an org. When the user logs in, If they are part of multiple orgs, they will be asked to select an org to log in to.
List the members in the org/project based on the role. Admin users can invite new users to the org. The list of pending user invites are also shown in the users page.
Shows the list of projects in the org the user have access to. Clicking on the project would take you to the detail page where the boards, and members within the project can be seen. Users with admin access will be able to update the project details and add/remove members to/from the project.
Users are assigned Admin role when they signup to the application. While inviting other users to the org, a role can be specified. The role will be deciding the level of access that particular user have.
The bundle size is pretty slim for the kind of application we have. You can also see that the styles css is around ~50KB thanks to Tailwind
The scores are pretty good too with a lot of room for improvements.
To get a local copy up and running follow these simple steps.
Clone the repo
git clone https://github.com/adisreyaj/compito.git
Install NPM packages
npm install
Run the docker-compose script to initialize the local db
sudo docker-compose up -d
Configure the environment variables
DATABASE_URL=postgresql://<username>:<password>@localhost/compito
ADMIN_PASS=<admin_pass>
AUTH0_AUDIENCE=<audience>
AUTH0_ISSUER_URL=https://<your_domain>.us.auth0.com/
AUTH0_DB=<database_name>
AUTH0_DOMAIN=<your_domain>.us.auth0.com
AUTH0_CLIENT_ID=<machine_to_machine_client_id>
AUTH0_CLIENT_SECRET=<machine_to_machine_client_id>
# for dev env
AUTH0_MANAGEMENT_TOKEN=<managment_api_token>
# secret used to encode the session token in Auth Action
SESSION_TOKEN_SECRET=<action_secret>
Run the UI
npm start
Run the API server
npm start api
Auth0 is used for authenticating the users. You'll need to setup few things in Auth0 before running the application.
Login/Signup to Auth0
Create two applications:
In the Single page application make sure to provide the urls:
Allowed Callback URLs
http://localhost:4200
Allowed Web Origins
http://localhost:4200
Allowed Logout URLs
http://localhost:4200/auth/login
Create an API in Auth0
The identifier that of the API will be the audience
Under the Machine to Machine Applications
tab, make sure our M-M application is enabled.
Under Authentication
> Database
, make sure in the Applications
tab, both the Application has been enabled.
Read more about this project and how to setup here: https://blog.sreyaj.dev/compito-project-management-app-angular-nestjs-auth0
See the open issues for a list of proposed features (and known issues).
Distributed under the MIT License. See LICENSE
for more information.
Please ⭐️ this repository if this project helped you!