e64f6f8569
enforces user admin role requirement for - creating / deleting / setting role for organization users - creating / deleting / setting role for project users - updating project name - deleting project hides action elements based on role for - admin console - team settings if team is only visible through project membership - add project tile if not team admin - project name text editor if not team / project admin - add redirect from team page if settings only visible through project membership - add redirect from admin console if not org admin role enforcement is handled on the api side through a custom GraphQL directive `hasRole`. on the client side, role information is fetched in the TopNavbar's `me` query and stored in the `UserContext`. there is a custom hook, `useCurrentUser`, that provides a user object with two functions, `isVisibile` & `isAdmin` which is used to check roles in order to render/hide relevant UI elements. |
||
---|---|---|
.github | ||
cmd | ||
conf | ||
data | ||
frontend | ||
internal | ||
migrations | ||
templates/mail/user | ||
uploads | ||
.dockerignore | ||
.gitignore | ||
.tmuxinator.yml | ||
docker-compose.dev.yml | ||
docker-compose.migrate.yml | ||
docker-compose.yml | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
gqlgen.yml | ||
LICENSE | ||
magefile.go | ||
README.md | ||
sqlc.yaml |
Overview
A free & open source alternative project management tool.
Please note that this project is still in active development. Some options may not work yet!
Features
Currently Taskcafe only offers basic task tracking through a Kanban board.
Currently you can do the following to tasks:
- Add colors & named labels
- Add due dates
- Descriptions written in Markdown
- Assign members
- Checklists
- Mark tasks as complete
Installation
With docker & docker-compose
You'll need both docker & docker-compose installed.
First clone the repository:
git clone https://github.com/JordanKnott/taskcafe && cd taskcafe
Now do the following:
docker-compose -p taskcafe up -d
docker-compose -p taskcafe -f docker-compose.yml -f docker-compose.migrate.yml run --rm migrate
This will start a postgres instance as well as a taskcafe instance.
The second command runs the database schema migrations.
If you visit http://localhost:3333, you will get redirected to the installation screen so that you can create the first system user.
From Source
You'll need Golang installed on your machine.
Next, clone the repository:
git clone https://github.com/JordanKnott/taskcafe && cd taskcafe
Next we need to build the binary. This project uses Mage for its build tool.
go run cmd/mage/main.go install
go run cmd/mage/main.go build
This will:
- Install all yarn packages for the frontend
- Build the React frontend
- Embed the React frontend in the binary
- Compile the final exectuable binary
The newly created taskcafe
binary can be found in the dist folder.
It contains everything neccessary to run except the config file. An example config file can be found in conf/app.example.toml
The config will need to be copied to a conf/app.toml
in the same place the binary is.
Make sure to fill out the database section of the config in order to connect it to your database.
Then run the database migrations with taskcafe migrate
.
Now you can run the web interface by running taskcafe web
Roadmap
This is a list of features that will eventually be added to Taskcafe in no particular order:
- Add a calender tab overview of task due dates
- Add lists tab overview of tasks (alternative view to Kanban )
- Add gantt timeline view (with swimlanes)
- Implemention list actions (copy, mass delete, etc)
- Task sorting, filtering, and search
- Custom fields
- Automation rules
- Wiki tab
- Progress tab
- Archive tasks, then option to delete instead of only being able to delete tasks
- Keyboard shortcuts
- Custom project backgrounds
- Custom project colors
- Portfolio view