Git Product home page Git Product logo

taskcafe's Introduction

Jordan Knott - @JordanKnott

Hello friend! I'm Jordan, a SWE who loves building solutions. I'm most familiar with JavaScript (React), Golang, and Python - however I choose whatever technology or language is best for the job. I love learning new things, reading fantasty & sci-fi novels, and building useful tools.

Jrodan Knott's github stats

What I currently working on? ๐Ÿ’œ

My current personal project is Taskcafe, an open source project management tool written to fit my needs.

Get in Touch ๐ŸŒฑ

taskcafe's People

Contributors

branchmispredictor avatar carlossalda avatar dependabot[bot] avatar fernthedev avatar iamleson98 avatar ijustdev avatar jeremytsaii avatar jordanknott avatar mandarvaze avatar mashirozx avatar nurseiit avatar samtidball avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

taskcafe's Issues

Feature: Sort by complete

Add "Complete" sort option that would sort tasks by their complete state.

Complete tasks would be at the top of the list, then the incomplete tasks.

Relevant files

  • frontend/src/shared/utils/sorting.ts
  • frontend/src/Projects/Project/Board/SortPopup.tsx
  • frontend/src/Projects/Project/Board/index.tsx

taskcafe_complete_sort

Please take a look at the developers guide for an idea on how the project is structured.

React build is failing for me

I'm following the From Source section of the readme. On the go run cmd/mage/main.go build step I'm getting the following error:

yarn run v1.22.4
$ react-scripts build
Creating an optimized production build...
Failed to compile.

TypeScript error in undefined(undefined,undefined):
File name '/Users/xxx/project-citadel/frontend/src/projects.d.ts' differs from already included file name '/Users/xxx/project-citadel/frontend/src/Projects.d.ts' only in casing.  TS1149

Neither setting forceConsistentCasingInFileNames to false in tsconfig.json nor uppercasing frontend/src/projects.d.ts solves the issue, resulting in another error:

TypeScript error in /Users/xxx/project-citadel/frontend/src/App/Routes.tsx(7,22):
File '/Users/xxx/project-citadel/frontend/src/Projects.d.ts' is not a module.  TS2306

Please advise what additional information might be needed to help troubleshoot this.

Refactor: replace moment.js with day.js

The frontend client uses Moment.js for pretty much anything date related however it now considered a legacy project and advises users to migrate to a new library.

Day.js seems like the best library with a good API.

All instances of moment.js should be replaced with day.js calls while keeping the same functionality.

For hacktoberfest users

This issue touches many different places within the frontend code, so I would only recommend this to users with a good idea on how to use React & Typescript.

Bug: Unable to install on Raspberry PI 3b+

I am unable to install the application on the raspberry pi 3b+ via docker-compose.
It always stops on the same step.

Step 5/18 : RUN yarn install
---> Running in cecec8496575
yarn install v1.22.4
[1/4] Resolving packages...
[2/4] Fetching packages...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
error An unexpected error occurred: "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.12.1.tgz: ESOCKETTIMEDOUT".
info If you think this is a bug, please open a bug report with the information provided in "/usr/src/app/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
ERROR: Service 'web' failed to build: The command '/bin/sh -c yarn install' returned a non-zero code: 1

A member user in a project can't move or edit a card

Describe the bug
I've added a new user with member permissions to a project.
The user try to move or edit an existing card, but the service gives an error, and the action fails.

Service log output

reflect: call of reflect.Value.Interface on zero Value

goroutine 11805 [running]:
runtime/debug.Stack(0x1, 0x0, 0x0)
	/usr/local/go/src/runtime/debug/stack.go:24 +0x9d
runtime/debug.PrintStack()
	/usr/local/go/src/runtime/debug/stack.go:16 +0x22
github.com/99designs/gqlgen/graphql.DefaultRecover(0x1b6e100, 0xc0007a4720, 0x1343b00, 0xc00000ebc0, 0x1411de0, 0x1533ae4)
	/go/pkg/mod/github.com/99designs/[email protected]/graphql/recovery.go:16 +0xa7
github.com/jordanknott/taskcafe/internal/graph.(*executionContext)._Mutation_updateTaskLocation.func1(0xc00077a310, 0xc00077a350, 0xc000f7af20)
	/usr/src/app/internal/graph/generated.go:6722 +0x78
panic(0x1343b00, 0xc00000ebc0)
	/usr/local/go/src/runtime/panic.go:969 +0x166
reflect.valueInterface(0x0, 0x0, 0x0, 0x1533a01, 0x9, 0x0)
	/usr/local/go/src/reflect/value.go:998 +0x1a5
reflect.Value.Interface(...)
	/usr/local/go/src/reflect/value.go:993
github.com/jordanknott/taskcafe/internal/graph.NewHandler.func1(0x1b6e100, 0xc0007a4720, 0x0, 0x0, 0xc00000eb60, 0xc00077a380, 0x1, 0x1, 0x15312b7, 0x7, ...)
	/usr/src/app/internal/graph/graph.go:58 +0x488
github.com/jordanknott/taskcafe/internal/graph.(*executionContext)._Mutation_updateTaskLocation.func2.2(0x1b6e100, 0xc0007a4720, 0x14343e0, 0x0, 0x0, 0x20)
	/usr/src/app/internal/graph/generated.go:6762 +0x266
github.com/jordanknott/taskcafe/internal/graph.(*executionContext)._Mutation_updateTaskLocation.func2(0x1b6e100, 0xc0007a4720, 0x20, 0x14343e0, 0xc0007a4701, 0xc00000eb40)
	/usr/src/app/internal/graph/generated.go:6765 +0xcf
github.com/99designs/gqlgen/graphql/executor.processExtensions.func3(0x1b6e100, 0xc0007a4720, 0xc00000eb40, 0xc0007a4750, 0xc0007a47b0, 0x0, 0x0)
	/go/pkg/mod/github.com/99designs/[email protected]/graphql/executor/extensions.go:62 +0x3a
github.com/jordanknott/taskcafe/internal/graph.(*executionContext)._Mutation_updateTaskLocation(0xc00077a310, 0x1b6e100, 0xc0007a46f0, 0xc000877280, 0xc0007a46c0, 0x3, 0x3, 0x0, 0x0)
	/usr/src/app/internal/graph/generated.go:6741 +0x2af
github.com/jordanknott/taskcafe/internal/graph.(*executionContext)._Mutation(0xc00077a310, 0x1b6e100, 0xc0007a46f0, 0xc0008aa930, 0x1, 0x1, 0x40e416, 0xc0007a4690)
	/usr/src/app/internal/graph/generated.go:16728 +0x2bef
github.com/jordanknott/taskcafe/internal/graph.(*executableSchema).Exec.func2(0x1b6e100, 0xc0007a4690, 0x10)
	/usr/src/app/internal/graph/generated.go:2441 +0x7b
github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.1.1(0x1b6e100, 0xc0007a4690, 0xc00077a330)
	/go/pkg/mod/github.com/99designs/[email protected]/graphql/executor/executor.go:105 +0x43
github.com/99designs/gqlgen/graphql/executor.processExtensions.func2(0x1b6e100, 0xc0007a4690, 0xc00077a330, 0x1b1f9e0)
	/go/pkg/mod/github.com/99designs/[email protected]/graphql/executor/extensions.go:59 +0x3a
github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.1(0x1b6e100, 0xc0007a4630, 0xc0007a44e0)
	/go/pkg/mod/github.com/99designs/[email protected]/graphql/executor/executor.go:104 +0x12a
github.com/99designs/gqlgen/graphql/handler/transport.POST.Do(0x7f9d429cdc68, 0xc0000dd400, 0xc00082c600, 0x1b653c0, 0xc00067f9e0)
	/go/pkg/mod/github.com/99designs/[email protected]/graphql/handler/transport/http_post.go:52 +0x353
github.com/99designs/gqlgen/graphql/handler.(*Server).ServeHTTP(0xc0006fe5c0, 0x7f9d429cdc68, 0xc0000dd400, 0xc00082c600)
	/go/pkg/mod/github.com/99designs/[email protected]/graphql/handler/server.go:115 +0x1fd
github.com/jordanknott/taskcafe/internal/route.(*AuthenticationMiddleware).Middleware.func1(0x7f9d429cdc68, 0xc0000dd400, 0xc00082c400)
	/usr/src/app/internal/route/middleware.go:65 +0x694
net/http.HandlerFunc.ServeHTTP(0xc0006fe660, 0x7f9d429cdc68, 0xc0000dd400, 0xc00082c400)
	/usr/local/go/src/net/http/server.go:2041 +0x44
github.com/go-chi/chi.(*ChainHandler).ServeHTTP(0xc0000ce380, 0x7f9d429cdc68, 0xc0000dd400, 0xc00082c400)
	/go/pkg/mod/github.com/go-chi/[email protected]+incompatible/chain.go:31 +0x52
github.com/go-chi/chi.(*Mux).routeHTTP(0xc0005013e0, 0x7f9d429cdc68, 0xc0000dd400, 0xc00082c400)
	/go/pkg/mod/github.com/go-chi/[email protected]+incompatible/mux.go:424 +0x278
net/http.HandlerFunc.ServeHTTP(0xc000119610, 0x7f9d429cdc68, 0xc0000dd400, 0xc00082c400)
	/usr/local/go/src/net/http/server.go:2041 +0x44
github.com/go-chi/chi/middleware.Timeout.func1.1(0x7f9d429cdc68, 0xc0000dd400, 0xc00082c300)
	/go/pkg/mod/github.com/go-chi/[email protected]+incompatible/middleware/timeout.go:44 +0x1ca
net/http.HandlerFunc.ServeHTTP(0xc0006fe260, 0x7f9d429cdc68, 0xc0000dd400, 0xc00082c300)
	/usr/local/go/src/net/http/server.go:2041 +0x44
github.com/go-chi/chi/middleware.Recoverer.func1(0x7f9d429cdc68, 0xc0000dd400, 0xc00082c300)
	/go/pkg/mod/github.com/go-chi/[email protected]+incompatible/middleware/recoverer.go:35 +0x83
net/http.HandlerFunc.ServeHTTP(0xc0006fe280, 0x7f9d429cdc68, 0xc0000dd400, 0xc00082c300)
	/usr/local/go/src/net/http/server.go:2041 +0x44
github.com/go-chi/chi/middleware.RequestLogger.func1.1(0x1b67600, 0xc000742000, 0xc00082c200)
	/go/pkg/mod/github.com/go-chi/[email protected]+incompatible/middleware/logger.go:46 +0x1d7
net/http.HandlerFunc.ServeHTTP(0xc0006fa840, 0x1b67600, 0xc000742000, 0xc00082c200)
	/usr/local/go/src/net/http/server.go:2041 +0x44
github.com/go-chi/chi/middleware.RealIP.func1(0x1b67600, 0xc000742000, 0xc00082c200)
	/go/pkg/mod/github.com/go-chi/[email protected]+incompatible/middleware/realip.go:34 +0x99
net/http.HandlerFunc.ServeHTTP(0xc0006fe2a0, 0x1b67600, 0xc000742000, 0xc00082c200)
	/usr/local/go/src/net/http/server.go:2041 +0x44
github.com/go-chi/chi/middleware.RequestID.func1(0x1b67600, 0xc000742000, 0xc00082c100)
	/go/pkg/mod/github.com/go-chi/[email protected]+incompatible/middleware/request_id.go:68 +0x287
net/http.HandlerFunc.ServeHTTP(0xc0006fe2c0, 0x1b67600, 0xc000742000, 0xc00082c100)
	/usr/local/go/src/net/http/server.go:2041 +0x44
github.com/go-chi/chi.(*Mux).ServeHTTP(0xc0005013e0, 0x1b67600, 0xc000742000, 0xc00082c000)
	/go/pkg/mod/github.com/go-chi/[email protected]+incompatible/mux.go:81 +0x2b2
net/http.serverHandler.ServeHTTP(0xc000724000, 0x1b67600, 0xc000742000, 0xc00082c000)
	/usr/local/go/src/net/http/server.go:2836 +0xa3
net/http.(*conn).serve(0xc000a88280, 0x1b6e040, 0xc0000d6780)
	/usr/local/go/src/net/http/server.go:1924 +0x86c
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2962 +0x35c

Taskcafe PostgreSQL Port

Hello,

i need to change the postgresql port to another, what ENV is the right one? I have tested TASKCAFE_DATABASE_HOST_PORT but it is not working.

Thanks for your help.

DrAg0n141

Title overlaps invite-button on small window width

Describe the bug
The title 'Taskcafรฉ' overlaps with the invite-button in the header if i position the site on half of my screen.

Expected behavior
The title is centered on the header.

Screenshots / Live demo link

Screenshot from 2020-10-01 11-48-19

Additional context

I already have a fix, wich i could apply and open as PR.

Register doesn't work

Describe the bug
Register redirects to login

Expected behavior
I should have register page

Feature Request: Meta boards/Cards as boards

Allow cards to link to another board, so that you can have one big board containing many little ones.
This would allow for example have one big project board which tracks tinier boards in its own boards.

Failed to upload an avatar picture

Describe the bug
Failed to upload an avatar picture. TaskCafe said:

9ๆœˆ 07 01:28:43 n24 taskcafe[6683]: time="07-09-2020 01:28:43" level=info msg="preparing to upload file"
9ๆœˆ 07 01:28:43 n24 taskcafe[6683]: time="07-09-2020 01:28:43" level=error msg="not a valid uuid"

What's wrong?

Expected behavior
Change my avatar picture.

Screenshots / Live demo link
None.

Additional context
None.

Database issues when following docker install guide

The documentation says to run:

docker-compose -p citadel up -d
docker-compose -p citadel -f docker-compose.yml -f docker-compose.migrate.yml run --rm migrate

I ran those with no apparent issues.

The documentation then says:

If you visit http://localhost:3333, you will get redirected to the installation screen so that you can create the first system user.

When I surf to the page, it brings me to a login screen, not a setup screen to create the first user.
This is printed in the log:

postgres_1  | 2020-07-21 20:34:14.735 UTC [27] ERROR:  relation "system_options" does not exist at character 59
postgres_1  | 2020-07-21 20:34:14.735 UTC [27] STATEMENT:  -- name: GetSystemOptionByKey :one
postgres_1  | 	SELECT key, value FROM system_options WHERE key = $1
postgres_1  | 	
web_1       | time="21-07-2020 20:34:14" level=error msg="get system option" error="pq: relation \"system_options\" does not exist"
postgres_1  | 2020-07-21 20:34:14.804 UTC [27] ERROR:  relation "system_options" does not exist at character 59
postgres_1  | 2020-07-21 20:34:14.804 UTC [27] STATEMENT:  -- name: GetSystemOptionByKey :one
postgres_1  | 	SELECT key, value FROM system_options WHERE key = $1
postgres_1  | 	
web_1       | time="21-07-2020 20:34:14" level=error msg="get system option" error="pq: relation \"system_options\" does not exist"
postgres_1  | 2020-07-21 20:34:28.013 UTC [27] ERROR:  relation "user_account" does not exist at character 174
postgres_1  | 2020-07-21 20:34:28.013 UTC [27] STATEMENT:  -- name: GetUserAccountByUsername :one
postgres_1  | 	SELECT user_id, created_at, email, username, password_hash, profile_bg_color, full_name, initials, profile_avatar_url, role_code FROM user_account WHERE username = $1
postgres_1  | 	

Trying to sign in with admin/admin produces this:

web_1       | time="21-07-2020 20:34:28" level=warning msg="user account not found" username=admin

I've tried stopping the docker containers, removing them, and removing the volumes and then running it again with no luck.

Hosting

When can I host the docker version for free instead on localhost? Any free alternatives?

Failed to build

error Couldn't find a package.json file in "~/project-citadel"
Error: running "yarn build --cwd frontend" failed with exit code 1
exit status 1

Using docker-compose fails - database connection refused

Hi,

I am unable to run taskcafe using docker-compse -f docker-compose.yml up because connection seems to be blocked with database. Please see the log:

postgres_1  | The files belonging to this database system will be owned by user "postgres".
postgres_1  | This user must also own the server process.
postgres_1  | 
postgres_1  | The database cluster will be initialized with locale "en_US.utf8".
postgres_1  | The default database encoding has accordingly been set to "UTF8".
postgres_1  | The default text search configuration will be set to "english".
postgres_1  | 
postgres_1  | Data page checksums are disabled.
postgres_1  | 
postgres_1  | fixing permissions on existing directory /var/lib/postgresql/data ... ok
postgres_1  | creating subdirectories ... ok
postgres_1  | selecting dynamic shared memory implementation ... posix
postgres_1  | selecting default max_connections ... 100
postgres_1  | selecting default shared_buffers ... 128MB
postgres_1  | selecting default time zone ... UTC
postgres_1  | creating configuration files ... ok
postgres_1  | running bootstrap script ... ok
web_1       | time="27-08-2020 13:24:59" level=panic msg="dial tcp 172.18.0.2:5432: connect: connection refused"
web_1       | panic: (*logrus.Entry) (0xbc4880,0xc0006104d0)
web_1       | 
web_1       | goroutine 1 [running]:
web_1       | github.com/sirupsen/logrus.Entry.log(0xc0000e1490, 0xc00061c9f0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
web_1       | 	/go/pkg/mod/github.com/sirupsen/[email protected]/entry.go:239 +0x2da
web_1       | github.com/sirupsen/logrus.(*Entry).Log(0xc000610460, 0xc000000000, 0xc0000cfbc0, 0x1, 0x1)
web_1       | 	/go/pkg/mod/github.com/sirupsen/[email protected]/entry.go:268 +0xeb
web_1       | github.com/sirupsen/logrus.(*Logger).Log(0xc0000e1490, 0x0, 0xc0000cfbc0, 0x1, 0x1)
web_1       | 	/go/pkg/mod/github.com/sirupsen/[email protected]/logger.go:192 +0x7d
web_1       | github.com/sirupsen/logrus.(*Logger).Panic(...)
web_1       | 	/go/pkg/mod/github.com/sirupsen/[email protected]/logger.go:233
web_1       | github.com/sirupsen/logrus.Panic(...)
web_1       | 	/go/pkg/mod/github.com/sirupsen/[email protected]/exported.go:129
web_1       | github.com/jordanknott/taskcafe/internal/commands.newWebCmd.func1(0xc0000aa580, 0x1665b20, 0x0, 0x0, 0x0, 0x0)
web_1       | 	/usr/src/app/internal/commands/web.go:41 +0x388
web_1       | github.com/spf13/cobra.(*Command).execute(0xc0000aa580, 0x1665b20, 0x0, 0x0, 0xc0000aa580, 0x1665b20)
web_1       | 	/go/pkg/mod/github.com/spf13/[email protected]/command.go:842 +0x453
web_1       | github.com/spf13/cobra.(*Command).ExecuteC(0x1631a20, 0xc0000cff50, 0x3, 0x3)
web_1       | 	/go/pkg/mod/github.com/spf13/[email protected]/command.go:950 +0x349
web_1       | github.com/spf13/cobra.(*Command).Execute(...)
web_1       | 	/go/pkg/mod/github.com/spf13/[email protected]/command.go:887
web_1       | github.com/jordanknott/taskcafe/internal/commands.Execute()
web_1       | 	/usr/src/app/internal/commands/commands.go:71 +0xdc
web_1       | main.main()
web_1       | 	/usr/src/app/cmd/taskcafe/main.go:9 +0x20
postgres_1  | performing post-bootstrap initialization ... sh: locale: not found
postgres_1  | 2020-08-27 13:24:59.508 UTC [29] WARNING:  no usable system locales were found
postgres_1  | ok
postgres_1  | syncing data to disk ... ok
postgres_1  | initdb: warning: enabling "trust" authentication for local connections
postgres_1  | You can change this by editing pg_hba.conf or using the option -A, or
postgres_1  | --auth-local and --auth-host, the next time you run initdb.
postgres_1  | 
postgres_1  | 
postgres_1  | Success. You can now start the database server using:
postgres_1  | 
postgres_1  |     pg_ctl -D /var/lib/postgresql/data -l logfile start
postgres_1  | 
postgres_1  | waiting for server to start....2020-08-27 13:25:01.113 UTC [34] LOG:  starting PostgreSQL 12.3 on x86_64-pc-linux-musl, compiled by gcc (Alpine 9.3.0) 9.3.0, 64-bit
postgres_1  | 2020-08-27 13:25:01.116 UTC [34] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres_1  | 2020-08-27 13:25:01.140 UTC [35] LOG:  database system was shut down at 2020-08-27 13:25:00 UTC
postgres_1  | 2020-08-27 13:25:01.144 UTC [34] LOG:  database system is ready to accept connections
postgres_1  |  done
postgres_1  | server started
postgres_1  | CREATE DATABASE
postgres_1  | 
postgres_1  | 
postgres_1  | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
postgres_1  | 
postgres_1  | 2020-08-27 13:25:01.457 UTC [34] LOG:  received fast shutdown request
postgres_1  | waiting for server to shut down....2020-08-27 13:25:01.460 UTC [34] LOG:  aborting any active transactions
postgres_1  | 2020-08-27 13:25:01.462 UTC [34] LOG:  background worker "logical replication launcher" (PID 41) exited with exit code 1
postgres_1  | 2020-08-27 13:25:01.462 UTC [36] LOG:  shutting down
postgres_1  | 2020-08-27 13:25:01.477 UTC [34] LOG:  database system is shut down
postgres_1  |  done
postgres_1  | server stopped
postgres_1  | 
postgres_1  | PostgreSQL init process complete; ready for start up.
postgres_1  | 
postgres_1  | 2020-08-27 13:25:01.570 UTC [1] LOG:  starting PostgreSQL 12.3 on x86_64-pc-linux-musl, compiled by gcc (Alpine 9.3.0) 9.3.0, 64-bit
postgres_1  | 2020-08-27 13:25:01.570 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
postgres_1  | 2020-08-27 13:25:01.571 UTC [1] LOG:  listening on IPv6 address "::", port 5432
postgres_1  | 2020-08-27 13:25:01.575 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres_1  | 2020-08-27 13:25:01.592 UTC [45] LOG:  database system was shut down at 2020-08-27 13:25:01 UTC
postgres_1  | 2020-08-27 13:25:01.597 UTC [1] LOG:  database system is ready to accept connections

Any thoughts how to make it work?
Thanks.

User icon glitch

Describe the bug
On the top of right no user icon is shown. Built from the latest source (61cd376).

Expected behavior
Uploaded avatar is shown.

Screenshots / Live demo link
ScreenShot

Additional context
None.

Feature Request: Mobile App

A mobile app would be BOMB but at the very least, a mobile friendly web interface could work as bare minimum.

Thanks for all your work on this project, looks very nice and has so much potential. Will be sending some beer/coffee/pizza money your way soon.

Can taskcafe support LDAP auth ?

Is your feature request related to a problem? Please describe.
It's difficult to integrate LDAP authentication or others. So I can not use my own account system.

Describe the solution you'd like
Support configure LDAP authentication

Describe alternatives you've considered

Additional context

Font

Hello,

I am running a fresh Citadel in Docker... It looks a bit weird with this font.
How can I change this?

Screenshot
000298

Feature Request: Live Updates

It would be awesome if edits to the boards (change in card data, card position etc.) would be instantly synced to all people watching the board.

In my use case this would be useful for shopping with someone else, but I could imagine it would also be useful for boards shown on TVs/second monitors etc to easily track progress.

Unraid Install

Hi, I need some help to get taskcafe to work on my unraid server. Maybe someone figured it out already, as there is a community application for it already. I guess my main problem is to use Postgres (11) where I have no idea how to create a new user and database for taskcafe. Maybe someone can help ^^ ?

Mobile UI is broken

In mobile browsers the UI is shown ok, but the login page is squashed together so strongly that its practically impossible to login.

Feature Request

It would be great if the application set up the database as part of the initial setup. This would mean the extra migration docker-compose would not be required.

--help for migrate doesn't print anything.

Trying to follow the instructions deploying this to a Docker Swarm and struggling to get ./citadel migrate to run.

~ # ./citadel migrate --help
Run the database schema migrations

Usage:
  citadel migrate [flags]

Flags:
  -h, --help   help for migrate

Feature: Add reset user password CLI command

Implement reset-password command that updates a user's password given a username and password argument.

Example usage

$ taskcafe reset-password jordan i_am_sneaky
Updated user "jordan" password

Relevant files

  • internal/commands/commands.go
  • internal/commands/token.go - this is a good example of how a command can be implemented
  • internal/db/user_accounts.sql.go - implementation of user DB access methods
  • internal/db/query/user_accounts.sql - SQL query file that is turned into the above implementation

Please take a look at the developers guide for an idea on how the project is structured.

Feature Request: More metadata in card

What do you think about following features?

  • Timelog (Logs who worked on this, when and how long)
  • Importance (As far as I remember that was a huge thing in GANTT?)
  • Dependencies (Unsure how this would be implemented exactly but again useful for GANTT)
  • Assignees (Assign board members to cards)
  • Swimlane (This is more of an UI thing, swimlanes could be triggered with labels or simply saved in the card data)

Docker-Compose Fails to Build

The error is listed below.

internal/commands/migrate.go:13:2: module github.com/jordanknott/project-citadel@latest found (v0.0.0-20200719211037-c3b183758960), but does not contain package github.com/jordanknott/project-citadel/api/internal/migrations
Error: running "go build -o dist/citadel cmd/citadel/main.go" failed with exit code 1
exit status 1

On Ubuntu 20.04
Docker version 19.03.12, build 48a66213fe
docker-compose version 1.26.2, build eefe0d31

I'm interested in trying this out so let me know when it works.

Fail in build step

Hi,

Both building from source and using Docker showed an error:

Error: open internal/frontend/frontend_generated.go: no such file or directory
exit status 1

I resolved this issue by creating empty directory /internal/frontend/.
My machine is based on Arch Linux with go 1.14.5 version.

PS, Citadel seems to be best Trello alternative, keep developement!

Error Starting Taskcafe

When trying to run the following from the README:

docker-compose -p taskcafe -f docker-compose.yml -f docker-compose.migrate.yml run --rm migrate

I get this:

docker-compose -p taskcafe -f docker-compose.yml -f docker-compose.migrate.yml run --rm migrate
Starting taskcafe_postgres_1 ... done
panic: Config File "taskcafe" Not Found in "[/root/conf /root /etc/taskcafe]"

goroutine 1 [running]:
github.com/jordanknott/taskcafe/internal/commands.initConfig()
	/usr/src/app/internal/commands/commands.go:67 +0x30d
github.com/spf13/cobra.(*Command).preRun(0xc000135340)
	/go/pkg/mod/github.com/spf13/[email protected]/command.go:872 +0x49
github.com/spf13/cobra.(*Command).execute(0xc000135340, 0x138ab00, 0x0, 0x0, 0xc000135340, 0x138ab00)
	/go/pkg/mod/github.com/spf13/[email protected]/command.go:808 +0x138
github.com/spf13/cobra.(*Command).ExecuteC(0x1356a00, 0xc00016bf50, 0x3, 0x3)
	/go/pkg/mod/github.com/spf13/[email protected]/command.go:950 +0x349
github.com/spf13/cobra.(*Command).Execute(...)
	/go/pkg/mod/github.com/spf13/[email protected]/command.go:887
github.com/jordanknott/taskcafe/internal/commands.Execute()
	/usr/src/app/internal/commands/commands.go:74 +0xdc
main.main()
	/usr/src/app/cmd/taskcafe/main.go:9 +0x20

I tried copying the conf/taskcafe.example.toml to conf/taskcafe.toml and re-running the build but I still get the same error.

taskcafe_web_1 exited with code 1

I used docker-compose to install. When running docker-compose -p taskcafe up -d both database and web server start but when I check the web server isn't running. Running this command without -d I get these logs:

root@raspberrypi:/home/pi/selfhosted/taskcafe/taskcafe# docker-compose -p taskcafe up
taskcafe_postgres_1 is up-to-date
Starting taskcafe_web_1 ... done
Attaching to taskcafe_postgres_1, taskcafe_web_1
web_1       | standard_init_linux.go:207: exec user process caused "exec format error"
postgres_1  | The files belonging to this database system will be owned by user "postgres".
postgres_1  | This user must also own the server process.
postgres_1  | 
postgres_1  | The database cluster will be initialized with locale "en_US.utf8".
postgres_1  | The default database encoding has accordingly been set to "UTF8".
postgres_1  | The default text search configuration will be set to "english".
postgres_1  | 
postgres_1  | Data page checksums are disabled.
postgres_1  | 
postgres_1  | fixing permissions on existing directory /var/lib/postgresql/data ... ok
postgres_1  | creating subdirectories ... ok
postgres_1  | selecting dynamic shared memory implementation ... posix
postgres_1  | selecting default max_connections ... 100
postgres_1  | selecting default shared_buffers ... 128MB
postgres_1  | selecting default time zone ... UTC
postgres_1  | creating configuration files ... ok
postgres_1  | running bootstrap script ... ok
postgres_1  | sh: locale: not found
postgres_1  | 2020-12-03 16:09:27.746 UTC [29] WARNING:  no usable system locales were found
postgres_1  | performing post-bootstrap initialization ... ok
postgres_1  | syncing data to disk ... ok
postgres_1  | 
postgres_1  | initdb: warning: enabling "trust" authentication for local connections
postgres_1  | You can change this by editing pg_hba.conf or using the option -A, or
postgres_1  | --auth-local and --auth-host, the next time you run initdb.
postgres_1  | 
postgres_1  | Success. You can now start the database server using:
postgres_1  | 
postgres_1  |     pg_ctl -D /var/lib/postgresql/data -l logfile start
postgres_1  | 
postgres_1  | waiting for server to start....2020-12-03 16:09:32.211 UTC [34] LOG:  starting PostgreSQL 12.3 on arm-unknown-linux-musleabihf, compiled by gcc (Alpine 9.3.0) 9.3.0, 32-bit
postgres_1  | 2020-12-03 16:09:32.219 UTC [34] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres_1  | 2020-12-03 16:09:32.282 UTC [35] LOG:  database system was shut down at 2020-12-03 16:09:30 UTC
postgres_1  | 2020-12-03 16:09:32.293 UTC [34] LOG:  database system is ready to accept connections
postgres_1  |  done
postgres_1  | server started
postgres_1  | CREATE DATABASE
postgres_1  | 
postgres_1  | 
postgres_1  | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
postgres_1  | 
postgres_1  | 2020-12-03 16:09:33.005 UTC [34] LOG:  received fast shutdown request
postgres_1  | waiting for server to shut down....2020-12-03 16:09:33.010 UTC [34] LOG:  aborting any active transactions
postgres_1  | 2020-12-03 16:09:33.015 UTC [34] LOG:  background worker "logical replication launcher" (PID 41) exited with exit code 1
postgres_1  | 2020-12-03 16:09:33.015 UTC [36] LOG:  shutting down
postgres_1  | 2020-12-03 16:09:33.061 UTC [34] LOG:  database system is shut down
postgres_1  |  done
postgres_1  | server stopped
postgres_1  | 
postgres_1  | PostgreSQL init process complete; ready for start up.
postgres_1  | 
postgres_1  | 2020-12-03 16:09:33.144 UTC [1] LOG:  starting PostgreSQL 12.3 on arm-unknown-linux-musleabihf, compiled by gcc (Alpine 9.3.0) 9.3.0, 32-bit
postgres_1  | 2020-12-03 16:09:33.144 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
postgres_1  | 2020-12-03 16:09:33.144 UTC [1] LOG:  listening on IPv6 address "::", port 5432
postgres_1  | 2020-12-03 16:09:33.152 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres_1  | 2020-12-03 16:09:33.235 UTC [45] LOG:  database system was shut down at 2020-12-03 16:09:33 UTC
postgres_1  | 2020-12-03 16:09:33.250 UTC [1] LOG:  database system is ready to accept connections
postgres_1  | 2020-12-03 16:29:16.829 UTC [1] LOG:  received smart shutdown request
postgres_1  | 2020-12-03 16:29:16.838 UTC [1] LOG:  background worker "logical replication launcher" (PID 51) exited with exit code 1
postgres_1  | 2020-12-03 16:29:16.844 UTC [46] LOG:  shutting down
postgres_1  | 2020-12-03 16:29:16.888 UTC [1] LOG:  database system is shut down
postgres_1  | 
postgres_1  | PostgreSQL Database directory appears to contain a database; Skipping initialization
postgres_1  | 
postgres_1  | 2020-12-03 16:29:23.643 UTC [1] LOG:  starting PostgreSQL 12.3 on arm-unknown-linux-musleabihf, compiled by gcc (Alpine 9.3.0) 9.3.0, 32-bit
postgres_1  | 2020-12-03 16:29:23.643 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
postgres_1  | 2020-12-03 16:29:23.644 UTC [1] LOG:  listening on IPv6 address "::", port 5432
postgres_1  | 2020-12-03 16:29:23.653 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres_1  | 2020-12-03 16:29:23.728 UTC [21] LOG:  database system was shut down at 2020-12-03 16:29:16 UTC
postgres_1  | 2020-12-03 16:29:23.740 UTC [1] LOG:  database system is ready to accept connections
taskcafe_web_1 exited with code 1

It seems the web server is crashing. I am running this on my raspberry pi 4.

Illegal Avatar URL

Describe the bug
When uploading a new avatar photo, its URL is always generated as http://localhost:3333/uploads/...

Expected behavior
Assigning a correct URL. e.g. https://example.com/uploads/...

Screenshots / Live demo link
None.

Additional context
None.

taskcafe.example.toml lacks server.hostname

Describe the bug
In taskcafe.example.toml, there is:

[general]
host = '0.0.0.0:3333'

but this is no sense. It should be

[server]
hostname = '0.0.0.0:3333'

Expected behavior
Change taskcafe.example.toml

Screenshots / Live demo link
None

Additional context
None.

Clicking 'Add Card' Does Not Add Card

Clicking the "Add Card after typing or pasting text does not add the card
After clicking on +Add another card and either pasting text or typing text in and clicking the Add Card purple icon below the entered text the card is not added to the list. It appears that only hitting Enter saves the new card to the list

Expected behavior
A new card would be added

Screenshots / Live demo link
https://imgur.com/a/GKECzjL

Additional context
I did include in the video that clicking outside of the window instead of clicking Add Card also doesn't work. This would be more of a Quality of Life request/addition
This was recorded on Firefox 81.0 incognito window
It also is not working in Chrome 85.0.4183.121

Please send the Taskcafe web service logs if applicable.

[HELP] Dirty database version 1.

Describe the bug
I built a binary and tried to taskcafe migrate, but failed.

taskcafe@n24:~/bin$ ./taskcafe migrate
Error: Dirty database version 1. Fix and force version.
Usage:
  taskcafe migrate [flags]

Flags:
  -h, --help   help for migrate

Global Flags:
      --config string   config file path

Could anyone tell me how to fix this issue?

  • taskcafe.toml
[general]
host = '127.0.0.1:3333'

[email_notifications]
enabled = true
display_name = "TaskCafe"
from_address = "[email protected]"

[storage]
storage_system = 'local_storage'
upload_dir_path = '/srv/taskcafe/uploads'

[database]
host = '192.168.207.11'
name = 'taskcafe'
user = 'taskcafe'
password = 'password'

[smtp]
username = '[email protected]'
password = 'password'
server = 'mx1.mail-services.net'
port = 587
connection_security = 'STARTTLS'

Expected behavior
Taskcafe will make a migration of database successfully.

Screenshots / Live demo link
None.

Additional context
None.

A different version of webpack was detected higher up in the tree

The build fails for me with the following error - I've tried identifying where webpack is in package.lock but could not find it.

Cloned directly from the repo (10/02/2020).

The react-scripts package provided by Create React App requires a dependency:

  "webpack": "4.41.5"

Don't try to install it manually: your package manager does it automatically.
However, a different version of webpack was detected higher up in the tree:

  C:\Users\sabat\node_modules\webpack (version: 4.42.0)

Manually installing incompatible versions is known to cause hard-to-debug issues.

npm ls webpack

+-- @storybook/[email protected]
| +-- @storybook/[email protected]
| | +-- [email protected]
| | | `-- [email protected]
| | |   `-- [email protected]
| | |     `-- [email protected]  extraneous

| | +-- [email protected]
| | | `-- [email protected]  extraneous
| | `-- [email protected]
| |   `-- [email protected]  extraneous
| `-- [email protected]
|   `-- [email protected]
|     `-- [email protected]  extraneous
`-- [email protected]
  `-- [email protected]

Issue: many unused variables and imports

I see a lot of unused variables and imports in the project. Its ~300 errors thrown if I enable "@typescript-eslint/no-unused-vars": ["error"].

To keep the project clean and prevent it from decaying I suggest to run linter automatically on every commit and throw an error if vars are unused

front end build failed

$ react-scripts build
/bin/sh: react-scripts: not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Error: running "yarn --cwd frontend build" failed with exit code 127
exit status 127
The command '/bin/sh -c go run cmd/mage/main.go build' returned a non-zero code: 1

Roadmap: Role & member enforcement

Currently roles & user membership of tasks, teams, and projects don't actually do anything.

Will implement:

  • Organization admins can see everything
  • Organization members can only see projects, teams, and tasks they are admins or members of
  • Team admins can see all projects under team with read-write permissions
  • Team members can see all projects under team but only read-only permissions (will be configurable to allow team members read-write by default instead)
  • Project admins can manage project & add / manage users
  • Project members can manage tasks & task groups

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.