MCPcopy Index your code
hub / github.com/adisreyaj/compito

github.com/adisreyaj/compito @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
936 symbols 1,812 edges 351 files 1 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Logo

Compito - Tasks Done Right ✔️

A simple and user friendly project management application with support for multiple Orgs and RBAC






<a href="https://compito.adi.so">View Demo</a>
·
<a href="https://github.com/adisreyaj/compito/issues">Report Bug</a>
·
<a href="https://github.com/adisreyaj/compito/issues">Request Feature</a>
·
<a href="https://blog.sreyaj.dev/compito-project-management-app-angular-nestjs-auth0">Blog</a>

Compito Project Management

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.

Home Page

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.

Compito Project Management

Boards 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.

Compito Project Board

Add attachments to task

Attachment can be added to task by just dragging and dropping in to the modal.

Add attachments

Orgs Page

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.

Compito Project Orgs

Users Page

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.

Compito Project Users

Projects 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.

Compito Project Projects

Role Hierarchy

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.

Role hierarchy

Built With

Tech Stack

Bundle Size

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

Logo

Lighthouse Score

The scores are pretty good too with a lot of room for improvements.

Logo

Getting Started

To get a local copy up and running follow these simple steps.

Installation

  1. Clone the repo sh git clone https://github.com/adisreyaj/compito.git
  2. Install NPM packages sh npm install
  3. Run the docker-compose script to initialize the local db sh sudo docker-compose up -d
  4. Configure the environment variables

``` DATABASE_URL=postgresql://:@localhost/compito ADMIN_PASS=

AUTH0_AUDIENCE= AUTH0_ISSUER_URL=https://.us.auth0.com/ AUTH0_DB= AUTH0_DOMAIN=.us.auth0.com AUTH0_CLIENT_ID= AUTH0_CLIENT_SECRET= # for dev env AUTH0_MANAGEMENT_TOKEN=

# secret used to encode the session token in Auth Action SESSION_TOKEN_SECRET= ```

  1. Run the UI sh npm start
  2. Run the API server sh npm start api

Setting up Auth0

Auth0 is used for authenticating the users. You'll need to setup few things in Auth0 before running the application.

  1. Login/Signup to Auth0
  2. Create two applications:
  3. A Single Page application
  4. A Machine to Machine application
  5. In the Single page application make sure to provide the urls:

  6. Allowed Callback URLs

    sh http://localhost:4200

  7. Allowed Web Origins

    sh http://localhost:4200

  8. Allowed Logout URLs

    sh http://localhost:4200/auth/login

  9. Create an API in Auth0

  10. The identifier that of the API will be the audience
  11. Under the Machine to Machine Applications tab, make sure our M-M application is enabled.
  12. Under Authentication > Database, make sure in the Applications tab, both the Application has been enabled.

Blog

Read more about this project and how to setup here: https://blog.sreyaj.dev/compito-project-management-app-angular-nestjs-auth0

Roadmap

See the open issues for a list of proposed features (and known issues).

License

Distributed under the MIT License. See LICENSE for more information.

Show your support

Please ⭐️ this repository if this project helped you!

Extension points exported contracts — how you extend this code

Chainable (Interface)
(no doc) [1 implementers]
apps/compito-e2e/src/support/commands.ts
UserBase (Interface)
(no doc)
libs/api-interfaces/src/lib/user.interface.ts
Breadcrumb (Interface)
(no doc)
libs/web/ui/src/components/page-header/page-header.component.ts
User (Interface)
(no doc)
libs/api-interfaces/src/lib/user.interface.ts
ConfirmModalData (Interface)
(no doc)
libs/web/ui/src/components/default-modals/confirm-modal/confirm-modal.component.ts
UserSignupRequest (Interface)
(no doc)
libs/api-interfaces/src/lib/user.interface.ts
UserAvatarGroupData (Interface)
(no doc)
libs/web/ui/src/components/user-avatar-group/user-avatar-group.component.ts
UserRequest (Interface)
(no doc)
libs/api-interfaces/src/lib/user.interface.ts

Core symbols most depended-on inside this repo

error
called by 153
libs/web/ui/src/components/toast/toast.service.ts
get
called by 39
apps/api/src/app/assets/assets.service.ts
getUserDetails
called by 38
apps/api/src/app/core/utils/payload.util.ts
Permissions
called by 32
apps/api/src/app/core/decorators/permissions.decorator.ts
Role
called by 21
apps/api/src/app/core/decorators/roles.decorator.ts
get
called by 19
libs/web/orgs/src/lib/state/orgs.state.ts
find
called by 12
apps/api/src/app/user/user.service.ts
formatUser
called by 10
libs/web/ui/src/util/format-user.operator.ts

Shape

Method 455
Class 422
Interface 41
Function 16
Enum 2

Languages

TypeScript100%

Modules by API surface

libs/web/boards/src/lib/state/boards.actions.ts35 symbols
libs/web/orgs/src/lib/state/orgs.actions.ts31 symbols
libs/web/projects/src/lib/state/projects.actions.ts27 symbols
libs/web/orgs/src/lib/state/orgs.state.ts23 symbols
libs/web/boards/src/lib/state/boards.state.ts23 symbols
libs/web/users/src/lib/state/users.actions.ts22 symbols
libs/web/projects/src/lib/state/projects.state.ts20 symbols
libs/web/users/src/lib/state/users.state.ts19 symbols
libs/web/boards/src/lib/boards.service.ts18 symbols
libs/web/boards/src/lib/shared/components/task-detail-modal/task-detail-modal.component.ts17 symbols
apps/api/src/app/user/user.service.ts16 symbols
libs/web/home/src/lib/state/home.state.ts13 symbols

For agents

$ claude mcp add compito \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact