Reorganized Docs. In Progress.

This commit is contained in:
Lauri Ojansivu 2024-06-27 11:08:43 +03:00
parent 1961e22cbd
commit ce89ff4833
202 changed files with 0 additions and 0 deletions

View file

@ -0,0 +1,5 @@
2022-03-02
[Added Perl scripts for Asana export to WeKan ®](https://github.com/wekan/wekan/tree/main/asana)
Thanks to GeekRuthie !

18
docs/ImportExport/CSV.md Normal file
View file

@ -0,0 +1,18 @@
Right to click your username / All Boards / Add Board / Import / From CSV/TSV
[Original Import CSV issue](https://github.com/wekan/wekan/issues/395)
[CSV import was added at PR 3081](https://github.com/wekan/wekan/pull/3081)
Here's a copy of the CSV and TSV to test out the functionality:
- [board-import.csv](https://wekan.github.io/csv/board-import.csv)
- [board-import.tsv](https://wekan.github.io/csv/board-import.tsv)
Frontend:
- [Import CSV code](https://github.com/wekan/wekan/tree/main/client/components/import)
Backend:
- [Import CSV code](https://github.com/wekan/wekan/blob/main/models/csvCreator.js) and [General Import code](https://github.com/wekan/wekan/blob/main/models/import.js)
Related:
- [Related PRs](https://github.com/wekan/wekan/pulls?q=is%3Apr+is%3Aclosed+csv)

View file

@ -0,0 +1,7 @@
## 1) Move board to Archive
<img src="https://wekan.github.io/boards/delete-board-part1.png" width="60%" alt="Move board to Archive" />
## 2) All Boards => Archive => Delete Board
<img src="https://wekan.github.io/boards/delete-board-part2.png" width="60%" alt="Delete Board from Archive" />

View file

@ -0,0 +1,75 @@
Related projects:
* [VBA-Web](https://github.com/VBA-tools/VBA-Web) - using REST APIs with VBA
* [VBA-JSON](https://github.com/VBA-tools/VBA-JSON)
* [VBA to Javascript translator](https://github.com/mha105/VBA-to-JavaScript-Translator)
* [Tcl and Excel](http://www.xet7.org/tcl)
For accessing Wekan with Excel VBA, you can use Wekan REST API:
https://github.com/wekan/wekan/wiki/REST-API
For example, with using curl, you first login with admin credentials,
by sending username and password to url.
Change your server url etc details to below:
Login with as JSON https://github.com/wekan/wekan/wiki/REST-API#example-call---as-json
```
curl -H "Content-type:application/json" \
http://localhost:3000/users/login \
-d '{ "email": "my@email.com", "password": "mypassword" }'
```
=>
```
{
"id": "ABCDEFG123456",
"token": "AUTH-TOKEN",
"tokenExpires": "2018-07-15T14:23:18.313Z"
}
```
Then you update card content by sending to card URL the new content:
```
curl -H "Authorization: Bearer AUTH-TOKEN" \
-H "Content-type:application/json" \
-X PUT \
http://localhost:3000/api/boards/ABCDEFG123456/lists/ABCDEFG123456/cards/ABCDEFG123456 \
-d '{ "title": "Card new title", "listId": "ABCDEFG123456", "description": "Card new description" }'
```
When using VBA, you can optionally:
* Use direct VBA commands to send and receive from URLs
* Download curl for Windows, and in VBA call curl.exe with those parameters, and get the result.
You can also google search how you can use JSON format files in VBA,
converting them to other formats etc. There could be something similar that
exists in PHP, that JSON file can be converted to PHP array, and array items accessed
individually, and array converted back to JSON.
Current Wekan REST API does not yet cover access to all data that is in MongoDB.
If you need that, REST API page also has link to Restheart, that adds REST API
to MongoDB, so you can use all of MongoDB data directly with REST API.
https://github.com/wekan/wekan/wiki/REST-API
Wekan boards also have export JSON, where also attachments are included in JSON as
base64 encoded files. To convert them back to files, you first get whole one board exported
after authentication like this:
```
curl https://Bearer:APIKEY@ip-address/api/boards/BOARD-ID/export?authToken=#APIKEY > wekanboard.json
```
Then you read that JSON file with VBA, and get that part where in JSON is the base64 text
of the file. Then you use VBA base64 function to convert it to binary, and write content to file.
# CSV/TSC Import/Export
There is [CSV/TSV pull request](https://github.com/wekan/wekan/pull/413), but it has been made
a long time ago, it would need some work to add all the new tables, columns etc from
MongoDB database, so that it would export everything correctly.
Options are:
a) Some developer could do that work and contribute that code to Wekan as
new pull request to Wekan devel branch.
b) Use [Commercial Support](https://wekan.team) and pay for the time to get it implemented.

View file

@ -0,0 +1,237 @@
TODO: [Feature Request: command line utility to convert between Standalone Wekan MongoDB database, and Sandstorm grain .zip file](https://github.com/wekan/wekan/issues/1695)
This is useful for example if you get [Board not found error](https://github.com/wekan/wekan/issues/1430)
Using Ubuntu 18.04 or Mint 19.1 or Ubuntu for Windows Subsystem for Linux:
## 1) Install required packages:
```
sudo apt-get install zip unzip p7zip-full wget
```
## 2) If you don't have Meteor 1.6.0.1 installed, download it to your home directory, and unarchive it
```
cd
wget https://releases.wekan.team/dev/repair/meteor-repair.7z
7z x meteor-repair.7z
```
## 3) Install MongoDB 3.2.22
https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-ubuntu/
## 4) Download Wekan grain
Use Sandstorm arrow down button to download Wekan grain in .zip file to your home directory.
## 5) Unzip downloaded file
```
unzip "YOUR-GRAIN-NAME-HERE.zip"
```
## 6) Repair database, if it does not open
```
.meteor/packages/meteor-tool/1.6.0_1/mt-os.linux.x86_64/dev_bundle/mongodb/bin/mongod --dbpath "./YOUR-GRAIN-NAME-HERE/data/wiredTigerDb" --repair
```
## 7) (Note to self about future versions of Meteor and Wekan)
Currently Wekan uses Meteor 1.6.0.1. In .meteor/packages/meteor-tool/ directory is also some 1.8.x version for upcoming Wekan version using Meteor 1.8.x. This .meteor directory has been generated by installing meteor from www.meteor.com and then upgrading some existing or new app with for example `meteor update --release 1.6.0.1` so that correct version of Meteor is downloaded.
## 8) Stop MongoDB
```
sudo systemctl stop mongod
```
## 9) Copy repaired database to MongoDB raw files and start MongoDB
```
sudo su
cd /var/lib
mv mongodb mongodb-original
cp -pR "/home/YOUR-USERNAME/YOUR-GRAIN-NAME-HERE/data/wiredTigerDb" .
mv wiredTigerDb mongodb
chown mongodb:mongodb mongodb -R
systemctl start mongod
exit
```
## 10) Browse database with MongoDB CLI
```
mongo
show dbs
use meteor
show collections
db.users.find();
exit
```
## 11a) Dump database to MongoDB dump format
```
mongodump --db meteor
```
## 11b) Dump database to JSON text files
Save this to `dump-json.sh` and then `chmod +x dump-json.sh && ./dump.sh meteor filesdir`
Script is originally [from this Rocket.Chat issue](https://forums.rocket.chat/t/big-issue-with-custom-javascript/261/4)
```
#!/bin/bash
if [ ! $1 ]; then
echo " Example of use: $0 database_name [dir_to_store]"
exit 1
fi
db=$1
out_dir=$2
if [ ! $out_dir ]; then
out_dir="./"
else
mkdir -p $out_dir
fi
tmp_file="fadlfhsdofheinwvw.js"
echo "print('_ ' + db.getCollectionNames())" > $tmp_file
cols=`mongo $db $tmp_file | grep '_' | awk '{print $2}' | tr ',' ' '`
for c in $cols
do
mongoexport -d $db -c $c -o "$out_dir/exp_${db}_${c}.json"
done
rm $tmp_file
```
It's also possible to restore JSON files like described [at stackoverflow](https://stackoverflow.com/questions/11255630/how-to-export-all-collection-in-mongodb) this way, but because userIDs etc can be different, there is no mapping to other users, so you may need to change JSON files some way:
```
for file in *.json; do c=${file#*exp_yourdbname_}; c=${c%.json}; mongoimport --db yourdbname --collection "${c}" --file "${file}"; done
```
## 12) Save attachments to files
[Download NoSQLBooster GUI webpage](https://nosqlbooster.com/downloads)
If you download AppImage for Linux, run it with:
```
chmod +x nosqlbooster4mongo*.AppImage
./nosqlbooster... (full filename here)
```
It can install NoSQLbooster to Linux Menu/Programming/NoSQLBooster for MongoDB.
With it connect to localhost:27017
Double click `cfs_gridfs.attachments.files` and right click filename and Download file.
<img src="https://wekan.github.io/nosqlbooster.png" width="100%" alt="Wekan logo" />
## 13) Optional: Restore
a) Restore data to Standalone Wekan Snap
b) Figure out how to make Sandstorm grain .zip file
***
## OLD CONTENT, TO BE CLEANED UP SOMETIME
## 5) Copy database files from unzipped Wekan grain to MongoDB
In .zip file database files are in directory `data/wiredTigerDb/`
In Wekan Snap, database files are in directory `/var/snap/wekan/common` - if you have other data there, rename common directory to other name first.
[Snap Backup and Restore](https://github.com/wekan/wekan-snap/wiki/Backup-and-restore)
[Docker Backup and Restore](Export-Docker-Mongo-Data)
## 6) Change database file permissions to root user
In Snap:
```
sudo chown root:root /var/snap/wekan/common -R
```
## 7) Start MongoDB
In Snap:
```
sudo snap start wekan.mongodb
```
## 8) Or, if you are brave, also start standalone wekan
Try does Standalone Wekan work with that database
```
sudo snap start wekan.mongodb
sudo snap start wekan.wekan
```
or both wekan and database at once
```
sudo snap start wekan
```
## 9) To see MongoDB data, install Robo3T GUI
https://robomongo.org
Wekan Snap: Connect it to address `localhost:27019`
Wekan Docker: If you have MongoDB exposed to outside Docker, Connect with Robo3T to address `localhost:27017`. Otherwise you first need to copy files from wekan-db Docker container to outside of Docker container, and restore files to local separately installed MongoDB database v3.2.20 or newer
[Snap Backup and Restore](https://github.com/wekan/wekan-snap/wiki/Backup-and-restore)
[Docker Backup and Restore](Export-Docker-Mongo-Data)
## 10) Browse data in Robo 3T
- On left, double click cards, checklists etc collections/tables to see their contents
- Currently default view to see is tree view. To see table view or JSON view, click small buttons above that white data area view display at near right border.
## 11) If you don't find data in Robo 3T, use hex editor GUI
In Linux, you can install Hex Editor for example with command:
```
sudo apt install ghex
```
or
```
sudo yum install ghex
```
Then it's usually in Linux desktop at Menu / Development / GHex.
Or you can start it in command line by writing `ghex`
You can open files from your unzipped Wekan Sandstorm grain directory `data/wiredTigerDb/` to see if there is still some data that is not yet overwritten with other data.
## 12) Moving data from Sandstorm to Standalone Wekan like Snap or Docker
12.1 Compare databases of Sandstorm and Docker Wekan with mongo GUI https://nosqlbooster.com/
12.2 Create new user to Standalone Wekan
12.3 Copy new user bcrypt password structure created bcrypt encrypted password from Sandstorm to Docker wekan structure. It's at users collection/table. Also add isAdmin=true boolean.
12.4 Login
12.5 Here is info about script how to save all from MongoDB to .JSON textfiles https://forums.rocket.chat/t/big-issue-with-custom-javascript/261/4
and most likely how to get them back to mongodb
so just copying all of those boards JSON files and restoring to MongoDB database would work
and editing JSON files with any plain text editor. For big files you can try JEdit.
12.6 Here is how to backup and restore mongodb in docker, snap etc https://github.com/wekan/wekan/wiki/Backup
12.7 All Wekan Docker settings are in this textfile https://raw.githubusercontent.com/wekan/wekan/devel/docker-compose-build.yml
12.8 Database name in Sandstorm is meteor, and in docker is wekan, so here is how to restore with different database name https://stackoverflow.com/questions/36321899/mongorestore-to-a-different-database
## Azure links
https://docs.microsoft.com/en-us/azure/container-service/dcos-swarm/container-service-swarm-mode-walkthrough
https://docs.docker.com/docker-cloud/cloud-swarm/create-cloud-swarm-azure/
https://docs.atlas.mongodb.com/reference/microsoft-azure/

View file

@ -0,0 +1,26 @@
## Paste big JSON in Linux
1. Copy WeKan board JSON to clipboard
```
sudo apt install xclip
cat board.json | xclip -se c
```
2. At some Chromium-based browser, click right top your username / All Boards / New Board / From Previous Export.
3. At input field, right click / Paste as Text.
4. Click Import.
## JSON to SQLite3
```
sqlite3 wekan.db
.mode json
.load wekan-export-board.json board
```
To be continued

View file

@ -0,0 +1,53 @@
# Current
* [PostgreSQL](https://github.com/wekan/wekan/tree/main/torodb-postgresql)
* [Webhooks](Features#webhooks), works by showing board activities with [Slack](https://slack.com/), [Rocket.chat](https://rocket.chat/) and others that supports Webhooks.
* [Gogs Integration](https://github.com/wekan/wekan-gogs) as separate project.
# Wishes for pull requests
## IFTTT
* [Huginn or Flogo](https://github.com/wekan/wekan/issues/1160)
## Chat
* [Rocket.Chat more integrations](https://github.com/RocketChat/Rocket.Chat/issues/672#issuecomment-328469079)
## Issue / Commit
* [GitLab](https://github.com/wekan/wekan/issues/109)
* GitHub
* Gitea
## Time Tracking
* [Time Tracking](https://github.com/wekan/wekan/issues/812)
* [Super-Productivity](https://github.com/johannesjo/super-productivity/issues/7) after [Themes](https://github.com/wekan/wekan/issues/781) and [API scripting](https://github.com/wekan/wekan/issues/794) is done.
## Complete replacement
* Jira, plan at [Themes](https://github.com/wekan/wekan/issues/781)
## File Sync, Groupware
* [ownCloud / Nextcloud](https://github.com/wekan/wekan/issues/687)
## Authentication
Most are these are already available at [Sandstorm](https://sandstorm.io), for example see
[screenshots of SAML support](https://discourse.wekan.io/t/sso-passing-variables-through-url/493/8).
Following are for Source/Docker installs:
* [Google/GitHub/OAuth](https://github.com/wekan/wekan/issues/234)
* [[LDAP]] ([#119](https://github.com/wekan/wekan/issues/#119))
* [SAML](https://github.com/wekan/wekan/issues/708)
* [OpenID](https://github.com/wekan/wekan/issues/538)
## Import / Export
* [Taskwarrior tasks](https://github.com/wekan/wekan/issues/827)
# More
[Features](Features)

35
docs/ImportExport/Jira.md Normal file
View file

@ -0,0 +1,35 @@
Originally from @webenefits at https://github.com/wekan/wekan/discussions/3504
## Migrate from Jira Server (Atlassian) to Wekan
Hello all,
I wanted to share here my experience with migrating data from Jira (Server) to Wekan. It took me 1 - 2 days to find a solution and I think it makes sense to record it here so that successors have it easier.
In order to not transfer everything manually and still keep all comments and (at least) links to attachments from Jira, my plan was to first migrate everything from **Jira → Trello** and then from **Trello → Wekan**, since importing from Trello works very well. :ok_hand:
Unfortunately there is no "easy" variant to transfer data from Jira to Tello.
First of all, I found "TaskAdpater" through various threads, which allows you to transfer data between different tools (including Jira and Trello). This would have been a nice way to do it, since the data would not have gone through a third party. Unfortunately, this didn't work because of the newer API token authentication in combination with Jira server. Also other suggested things like "Zapier" were not really functional.
## Related
- https://www.theregister.com/2023/10/16/atlassian_cloud_migration_server_deprecation/
- https://news.ycombinator.com/item?id=37897351
When I had almost given up, I had the idea to look for "Power Ups" (Addons) in Trello. And indeed, I found what I was looking for! The power up is called "Unito Sync". It allows you to synchronize individual projects in both directions between tools like Jira and Trello. And the best: There is a 14-day trial version.
That's how it worked in the end. You have to migrate each project separately and make some fine adjustments afterwards. However, all data including comments and attachments (as links) are integrated!
Here again briefly the way:
1. Create a Trello dummy account
2. Create a new board there
3. Install and register Power Up Unito Sync
4. Create a new "flow" for the current project in Unito Sync
5. Synchronize
6. Export data from Trello again afterwards
7. Import JSON into Wekan
I hope I could save you some work with this. Good luck! :four_leaf_clover:
Greetings
Alexander

12
docs/ImportExport/Leo.md Normal file
View file

@ -0,0 +1,12 @@
https://leo-editor.github.io/leo-editor/
Install at Linux arm64:
```
sudo apt -y install build-essential python3-dev pytho3-pip python3-pyqt5*
pip3 install pip --user --upgrade
pip3 install leo --user --upgrade
leo
```

View file

@ -0,0 +1,49 @@
Importing attachments from Trello:
- https://github.com/wekan/wekan/tree/main/trello
- https://github.com/wekan/trello-board-exporter
- https://github.com/wekan/wekan/issues/4877
- https://github.com/wekan/trello-backup
If you're already a Trello user, migrating to Wekan is easy:
1. install Wekan
2. create users
3. export your boards from Trello
4. import them into Wekan
5. be aware of some limitations
# 1. Install Wekan
Detailed instructions are on this wiki at the page [Install and Update](Install-and-Update)
# 2. Create users
Once Wekan is installed, register a user for you. Then register a user for each of your other Trello board members. This is a bit cumbersome, as you have to logout then register in the name of each user.
Pro-tip: your import will be much facilitated if you use the exact same **username** in Wekan that your users had in Trello. But if you can't / don't want to, it's not blocking - it's just going to be a little more work when importing (step 4).
# 3. Export your boards from Trello
Log into Trello, and for each of your boards, go to the board menu (click "Show Menu"), then "More", then "Print and Export", then "Export JSON". Save the resulting page on your computer.
If you have a high number of boards, here is a script that automates these steps (this script it **not** part of the Wekan project): https://github.com/mattab/trello-backup
# 4. Import your boards into Wekan
In Wekan, on the boards list, click on "Add a new board". In the popup, click on "import from Trello".
Then, copy the content of one exported board file into the input field and hit "Import".
If your board had members, you will need to tell Wekan which of its users should replace each of your Trello users: Wekan will display a list of the users found in your Trello board, and let you select which Wekan user to map it to. If the usernames are the same, that mapping will have been done for you. Then hit "Done".
Once imported, Wekan will put you straight into your new board. Enjoy!
# 5. Limitations
The Trello import will import your board, your labels, your lists, your cards, your comments, your attachments, and will map Trello users to Wekan users as you requested it, all pretty quickly.
Yet, it has a few limitations:
- Wekan does not import your activity history (who did what when)
- it does not map non-member users: if you had a public board, all non-member contributions (like comments) will be attached to the user doing the importation
- Trello does not export comments posted earlier than around December 2014 (this is empirical data), so Wekan can't import it.
- when importing attachments, Wekan will download them and host them on your server. But the download process is not particularly robust and there is no feedback on it, so if you have lots of (or heavy) attachments, you'll have to give it some time and it may timeout without you knowing about it.

View file

@ -0,0 +1,46 @@
Migrations from every possible old Wekan version are not implemented yet.
Here are some starting points.
## 1) Required: Backups
https://github.com/wekan/wekan/wiki/Backup
Do backups to multiple places. And test does restore work, with restore script already made.
## 2) You can save all data from MongoDB to .json files and compare them
That way you can also edit files to fix something, and also save back to MongoDB:
- https://forums.rocket.chat/t/big-issue-with-custom-javascript/261/3
## 3) Change text in all files in current directory in-place
Take backup before runnning this.
Using sed on Linux or Mac.
```
sed -i 's|FindThisText|ReplaceWithThisText|g' *
```
## 4) Example: From v0.77 to newest
### v0.77
- Schema https://github.com/wekan/wekan/tree/v0.77/models
- Migrations https://github.com/wekan/wekan/blob/v0.77/server/migrations.js
### Newest
- Schema https://github.com/wekan/wekan/tree/devel/models
- Migrations https://github.com/wekan/wekan/blob/main/server/migrations.js
## 5) Some migrations could be missing
Some of the database schema can be different. If you see difference in these files, you could fix it for everybody by adding new code to migrations, so old schema is converted to new one automatically when Wekan starts.
## 6) Inform Wekan about what is missing
### a) Add issue
- [Add issue](https://github.com/wekan/wekan/issues)
### b) Create pull request
- [Build from source or build on VirtualBox image](Platforms)
- [Please try to fix lint error before creating pull request](Developer-Documentation#preventing-travis-ci-lint-errors-before-submitting-pull-requests)
- [Making Pull Request](https://help.github.com/articles/creating-a-pull-request/)

64
docs/ImportExport/Sync.md Normal file
View file

@ -0,0 +1,64 @@
# [Big Picture Roadmap](https://github.com/wekan/wekan/blob/main/FUTURE.md): Import/Export/Sync with WeKan
## Partial
[More](https://github.com/wekan/wekan/issues/4578)
### WeKan kanban
From | Import | Export | Sync | In Progress
------------ | ------------- | ------------- | ------------- | -------------
[CSV/TSV](https://github.com/wekan/wekan/wiki/CSV) | CSV/TSV | [Custom Fields](https://github.com/wekan/wekan/issues/3386), [Hours](https://github.com/wekan/wekan/issues/1907), [Custom Fields value and name](https://github.com/wekan/wekan/issues/3769) | | [Error 500](https://github.com/wekan/wekan/issues/5132)
JSON | [Checklists](https://github.com/wekan/wekan/issues/904), [Sandstorm Header](https://github.com/wekan/wekan/issues/1850), [Upload](https://github.com/wekan/wekan/issues/4615) [File](https://github.com/wekan/wekan/issues/2178), [Templates Name](https://github.com/wekan/wekan/issues/2727), [Cards/Lists](https://github.com/wekan/wekan/issues/2340), [List Order](https://github.com/wekan/wekan/issues/1602), [Invisible](https://github.com/wekan/wekan/issues/5154), [List Color](https://github.com/wekan/wekan/issues/3615), [Comments](https://github.com/wekan/wekan/issues/4228), [Labels](https://github.com/wekan/wekan/issues/813), [Subtasks](https://github.com/wekan/wekan/issues/4420) | JSON, [Checklists](https://github.com/wekan/wekan/issues/904), [Cards/Lists](https://github.com/wekan/wekan/issues/2340), [Card](https://github.com/wekan/wekan/issues/4197), [Labels](https://github.com/wekan/wekan/issues/813), [List Order](https://github.com/wekan/wekan/issues/1602), [Version](https://github.com/wekan/wekan/issues/1922) | [Bidirectional](https://github.com/wekan/wekan/issues/1322) |
[Any](https://github.com/wekan/wekan/issues/3775)
Excel | | XLSX | |
Board HTML | | [Card Content](https://github.com/wekan/wekan/issues/4004), [Link to Minicard](https://github.com/wekan/wekan/issues/3812) | |
Clipboard | [Markdown](https://github.com/wekan/wekan/issues/2142) | [Markdown](https://github.com/wekan/wekan/issues/2142), [Board JSON](https://github.com/wekan/wekan/issues/1918) | |
Text | [DragDrop](https://github.com/wekan/wekan/issues/1941) | [Boards/Swimlanes](https://github.com/wekan/wekan/issues/2185) | |
Print | | [Board](https://github.com/wekan/wekan/issues/2794) | |
CLI | [Sandstorm](https://github.com/wekan/wekan/issues/1695) | [Sandstorm](https://github.com/wekan/wekan/issues/1695) | |
WeKan All Boards | | [ZIP](https://github.com/wekan/wekan/issues/4902) | |
### Other kanban
From | Import | Export | Sync | In Progress
------------ | ------------- | ------------- | ------------- | -------------
[Trello](https://github.com/wekan/wekan/wiki/Migrating-from-Trello) | JSON, [Feedback](https://github.com/wekan/wekan/issues/1467), [File Upload](https://github.com/wekan/wekan/issues/529) | | | [Attachments](https://github.com/wekan/wekan/issues/4877), [Sandstorm Attachments](https://github.com/wekan/wekan/issues/2893), [CheckLists UserId](https://github.com/wekan/wekan/issues/4417)
[Jira](https://github.com/wekan/wekan/wiki/Jira) | | | |
[Asana](https://github.com/wekan/wekan/wiki/Asana) | | | |
[Zenkit](https://github.com/wekan/wekan/wiki/ZenKit) | | | |
## Wishes
### Other Kanban
From | Import | Export | Sync | In Progress
------------ | ------------- | ------------- | ------------- | -------------
[Focalboard](https://github.com/wekan/wekan/issues/4659) | | | |
[Google Tasks](https://github.com/wekan/wekan/issues/5182) | | | |
[Notion](https://github.com/wekan/wekan/issues/4659) | | | |
[TaskWarrior](https://github.com/wekan/wekan/issues/827) | | | |
[Todo.txt](https://github.com/wekan/wekan/issues/152) | | | |
[Todoist](https://github.com/wekan/wekan/issues/4659) | | | |
[Redmine](https://github.com/wekan/wekan/issues/1150) | | | |
[RestyaBoard](https://github.com/wekan/wekan/issues/3181) | | | |
[Rust Kanban](https://github.com/yashs662/rust_kanban) | | | |
[Leo and Emacs Org mode](https://github.com/wekan/wekan/issues/2186) | | | |
[Microsoft Planner](https://github.com/wekan/wekan/issues/2642) | | | |
### Issues and SCM
From | Import | Export | Sync | In Progress
------------ | ------------- | ------------- | ------------- | -------------
[GitHub](https://github.com/wekan/wekan/issues/5145) | | | |
[GitLab](https://github.com/wekan/wekan/issues/5145) | | | |
[Fossil SCM](https://github.com/wekan/wekan/issues/5145) | | | |
[Git-Bug](https://github.com/wekan/wekan/issues/5145) | | | |
Gitea
Gogs | | | [wekan-gogs](https://github.com/wekan/wekan-gogs) |
### Wiki
From | Import | Export | Sync | In Progress
------------ | ------------- | ------------- | ------------- | -------------
Confluence | | | |

View file

@ -0,0 +1,101 @@
Code originally by ertanalytics (Eric Thompson / AZero). Script has been used for daily exports of a board.
***
![Wekan Sandstorm cards to CSV using Python screenshot](https://wekan.github.io/sandstorm-api-csv.png)
***
## Exporting Wekan board to JSON with Bash script
1) On Wekan grain, get Webkey like this:
```
https://api-URL.SUBDOMAIN.sandcats.io#APIKEY
```
2) Modity URL, SUBDOMAIN and APIKEY to this Bash script that exports board to file directly:
```
curl https://Bearer:APIKEY@api-URL.SUBDOMAIN.sandcats.io/api/boards/sandstorm/export?authToken=#APIKEY > wekanboard.json
```
For local Sandstorm install:
```
curl http://Bearer:APIKEY@api-URL.local.sandstorm.io:6080/api/boards/sandstorm/export?authToken=#APIKEY > wekanboard.json
```
***
## Python script, has more dependencies
cards-to-csv.py
```
#Sandstorm Wekan API Access Testing
##Does not seem to pull the redirected content
import requests
from requests.auth import HTTPBasicAuth
from bs4 import BeautifulSoup
from time import sleep
import os
import sys
import urllib
#All imports needed site navigation
import datetime
from time import sleep
import time
from selenium import webdriver
#drive.get('http://www.google.com/');
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from splinter import *
#driver = webdriver.Chrome()
##Data Handling
import pandas as pd
import json
from bson import json_util, ObjectId
from pandas.io.json import json_normalize
reload(sys)
sys.setdefaultencoding('utf-8')
#Export API Command
apiURLnoAuth = 'https://Bearer:APIKEY@api-URL.SUBDOMAIN.sandcats.io/api/boards/sandstorm/export?authToken=#APIKEY'
sleep(1) #Time in seconds
# Choose the browser (default is Firefox)
browser2 = Browser('chrome')
# Fill in the url
browser2.visit(apiURLnoAuth)
sleep(1) #Time in seconds
soup = BeautifulSoup(browser2.html,'html.parser')
browser2.quit()
script = soup.find('pre').children.next()
sanitized = json.loads(script)
dflabels = pd.DataFrame(json_normalize(sanitized, 'labels'))
dflists = pd.DataFrame(json_normalize(sanitized, 'lists'))
dfcards = pd.DataFrame(json_normalize(sanitized, 'cards'))
dfusers = pd.DataFrame(json_normalize(sanitized, 'users'))
normalized = json_normalize(sanitized)
df = pd.DataFrame(normalized)
dflists['createdAt'] = pd.to_datetime(dflists['createdAt'])
dflists['updatedAt'] = pd.to_datetime(dflists['updatedAt'])
dfcards['createdAt'] = pd.to_datetime(dfcards['createdAt'])
dfcards['dateLastActivity'] = pd.to_datetime(dfcards['dateLastActivity'])
dfcards['title']=dfcards['title'].str.replace('\n','')
dfcards.to_csv('//DESTINATION_FOLDER/dfcards.csv',sep='|')
dflists.to_csv('//DESTINATION_FOLDER/dflists.csv',sep='|')
dflabels.to_csv('//DESTINATION_FOLDER/dfboardsLabels.csv',sep='|')
dfusers.to_csv('//DESTINATION_FOLDER/dfusers.csv',sep='|')

View file

@ -0,0 +1,303 @@
## Update 2023-09-23
### FOSS Kanban
MIT:
- WeKan (MIT, Node.js/Meteor/MongoDB) https://github.com/wekan/wekan is maintained, major features being added, see https://github.com/wekan/wekan/wiki/Deep-Dive-Into-WeKan
- Kanboard (MIT, PHP) https://github.com/kanboard/kanboard is at maintenance mode, no major new feature development. There is still security fixes etc.
- 4gaBoards (MIT, Node.js/Sails.js/PostgreSQL) https://github.com/RARgames/4gaBoards is maintained fork of Planka
- Godello (MIT, Godot) https://github.com/alfredbaudisch/Godello can save locally, maybe no multi-user support yet
- Rust TUI kanban (MIT, Rust) https://github.com/yashs662/rust_kanban is maintained
GPL/AGPL:
- OpenProject (GPL-3.0, RoR) https://github.com/opf/openproject is maintained
- Leantime (AGPL-3.0, PHP8/MySQL) https://github.com/Leantime/leantime is maintained
- NextCloud said at NextCloud Conference https://www.youtube.com/watch?v=H8KHXnH4NKs , that Deck (AGPL-3.0, PHP) https://github.com/nextcloud/deck is for being lightweight kanban, and to not have full Project Management features like OpenProject (GPL-3.0, RoR) https://github.com/opf/openproject
- Planka (AGPL-3.0, Node.js/Sails.js/PostgreSQL) https://github.com/plankanban/planka changed from MIT to AGPL-3.0, so there is MIT fork at https://github.com/RARgames/4gaBoards
- Planify (GPL-3.0, Vala) https://github.com/alainm23/planify is maintained
Not maintained:
- RestyaBoard (OSL-3.0, PHP/Python/Java/JS) is not developed anymore, there is no commits after Mar 12, 2022: https://github.com/RestyaPlatform/board/issues/4426
Other kanbans maybe listed at https://github.com/KanRule
### Propietary kanban
- Atlassian is retiring self-managed server offerings https://www.atlassian.com/blog/platform/atlassian-server-is-going-away-next-steps
## Please [search from ChangeLog page](https://github.com/wekan/wekan/blob/main/CHANGELOG.md) instead
Please [search from ChangeLog page](https://github.com/wekan/wekan/blob/main/CHANGELOG.md) instead about does Wekan have some feature.
This comparison below is over one year old and very outdated. All of Wekan/Trello/Restyaboard have changed very much and have many new features and fixes.
## Basic features
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Price | Free and Open Source, [MIT license](https://github.com/wekan/wekan/blob/main/LICENSE). Free for Commercial Use. | Free with limitations, Monthly payment, Annual Subscription, Quote-based | Open Core
Whitelabeling | Yes. Admin Panel/Layout: Hide Logo, Custom Product Name. | No | $ Yes
Theming | [Yes](Custom-CSS-themes) | No | $ Yes
Redistributing | Yes | No | $ Yes
Hosting | [Self-host or SaaS provider](Platforms) | SaaS | Self-host
## Basic features: Board
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Activities fetch | WebSocket | WebSocket | Polling (Better, for easy scaling)
Multiple language | Yes 70 | Yes 29 | Yes 38
Keyboard shortcuts | Yes | Yes | Yes
Boards | Yes | Yes | Yes
Closed boards listing | Yes, at Archive | Yes | Yes
Starred boards listing | No, starred and non-starred at All Boards | No | Yes
Add board with predefined templates | Personal templates, Import Board from Trello or Wekan | No | Yes
Board stats | [Yes](Features#stats) | No | Yes
Board - Add members | Yes | Yes | Yes
Board - Remove members | Yes | Yes | Yes
Close board | Yes, move to Archive | Yes | Yes
Delete board | Yes, from Archive | Yes | Yes
Subscribe board | Yes | Yes | Yes
Copy board | Export / Import board | Yes | Yes
Starred board | Yes | Yes | Yes
Unstarred board | Yes | Yes | Yes
Board text list view | [No](https://github.com/wekan/wekan/issues/1862) | No | Yes
Board calendar view | Yes, for Start/End Date | Yes | Yes
Board sync with google calendar | No | Yes | Yes
## Basic features: Swimlanes
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Swimlanes | Yes | External [Chrome Add-On](https://chrome.google.com/webstore/detail/swimlanes-for-trello/lhgcmlaedabaaaihmfdkldejjjmialgl) and [Firefox Add-On](https://addons.mozilla.org/en-US/firefox/addon/swimlanes-for-trello/) | No
Change Swimlane Color | Yes | ? | ?
## Basic features: Lists
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Create list | Yes | Yes | Yes
List color | Yes | No | Yes
Copy list | No | Yes | Yes
Move list | No. Only at same board with dragging. | Yes | Yes
Subscribe list | Yes | Yes | Yes
Remove list | Yes | Yes | Yes
Move all cards in this list | No. Only multiselect-drag to the same board. | Yes | Yes
Archive all cards in this list | No | Yes | Yes
Archive this list | Yes | Yes | Yes
Show attachments in list | No. Only on card. | No | Yes
## Basic features: Cards
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Map card | [Not yet](https://github.com/wekan/wekan/issues/755) | No | ?
Filter cards | Yes, also with Regex | Yes | Yes
Archived items | Yes | Yes | Yes
Card stickers | No | Yes | No
Card labels | Yes | Yes | Yes
Card labels color change | Yes | Yes | Yes
Cards | Yes | Yes | Yes
Paste multiline text as one or many cards | No | Yes | ?
Create cards | Yes | Yes | Yes
Delete cards | Yes | Yes | Yes
Instant add card | No | No | $ Yes
Add cards & reply via Email | No | Yes | Yes
Multiple card view | No | No | Yes
Expandable card view | No | No | Yes
Card ID display | [Not yet](https://github.com/wekan/wekan/issues/2450) | No | Yes
Card color | Yes | No | ?
Card color on card list | No | No | Yes
Card action on card list | Only multiple selection and WIP Limit | Yes | No
Card - Set due date | Yes | Yes | Yes
Card - Add members | Yes | Yes | Yes
Card - Remove members | Yes | Yes | Yes
Card - Add labels | Yes | Yes | Yes
Card - Add checklist | Yes | Yes | Yes
Card - Add attachment | Yes | Yes | Yes
Move card | Yes | Yes | Yes
Copy card | Yes | Yes | Yes
Subscribe card | Yes | Yes | Yes
Archive card | Yes | Yes | Yes
Vote card | No | Yes | Yes
Share card | No | Yes | Yes
Print card | No | Yes | No
Add comment on card | Yes | Yes | Yes
Reply comment on card | No, only adding another comment | No | Yes
Remove comment on card | Yes | Yes | Yes
Nested comments | No | No | Yes
Card resizable view | No | No | Yes
Show attachments in card | JPG/PNG/GIF images in slideshow. | Yes | Yes
Card history filtering | No | No | Yes
Button to delete all archived items | [Not yet](https://github.com/wekan/wekan/issues/1625) | No | Yes
## Basic features: Checklists
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Checklist - Add item | Yes | Yes | Yes
Copy multiple lines from Excel/Project and paste as one or many checklist items | [Not yet](https://github.com/wekan/wekan/issues/1846) | Yes | ?
Checklist - Remove item | Yes | Yes | Yes
Checklist - Convert to card | No | Yes | Yes
Checklist - Mention member | No | Yes | Yes
Checklist - Select emoji | [No](https://github.com/wekan/wekan/issues/1537) | Yes | Yes
## Basic features: Search
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Search | Only on one board, also with regex. And add linked card search from any board. | Yes | $ Yes
Save search | No | Yes | No
## Basic features: Organizations
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Organizations list on profile | Yes, at All Boards page | Yes | Yes
Organizations | [Yes](https://github.com/wekan/wekan/issues/802) | Yes | Yes
Change organization on board | [Yes](https://github.com/wekan/wekan/issues/802#issuecomment-416474860) | Yes | Yes
Organizations - Add members | Yes | Yes | Yes
Organizations - Remove members | Yes | Yes | Yes
Organizations - Members change permissions | No | Yes | Yes
Create organization with types | No | Yes | No
Organizations - Sorting list | No | No | Yes
Organizations - Activities list | No | Yes | Yes
Organizations settings | Yes | Yes | Yes
Organizations visibility | No | Yes | Yes
Organizations - Membership restrictions | Yes | Yes | Yes
Organizations - Board creation restrictions | No | Yes | Yes
Remove organization | No | Yes | Yes
## Basic features: Offline
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Offline sync - use without internet | No. You can install Wekan to your own computer and use it locally. | No | Yes
## Basic features: Diff, Revisions and Undo
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Undo from activities | No | No | Yes
## Basic features: JSON API
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
API explorer | No | No | Yes
OpenAPI | [Yes](https://github.com/wekan/wekan/tree/main/openapi) [here](https://wekan.github.io/api/) | ? | ?
Developer applications | Yes, using REST API | Yes | Yes
Authorized OAuth applications | No, REST API [login as admin to get Bearer token](REST-API#example-call---as-form-data) | Yes | Yes
Webhooks | Yes, per board or global at Admin Panel | Yes | Yes
Zapier (IFTTT like workflow automation with 500+ websites) | Yes | Yes | $ Yes
Integrated IFTTT | [Yes](IFTTT) | No | No
## Basic features: Email and Notifications
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Email-to-board settings | No, requires your code to use REST API | Yes | Yes
Email templates management | No | No | Yes
Notifications settings | [Not yet](https://github.com/wekan/wekan/issues/2471) | Yes | Yes
Disable desktop notification | [No desktop/push notifications yet](https://github.com/wekan/wekan/issues/2026) | No | Yes
User configuration to change default subscription on cards and boards | Yes | No | Yes
Card notification & highlight | No | No | Yes
Notification for card overdue | Yes, see snap/docker-compose.yml email settings | Yes | Yes
## Basic features: Settings
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Additional settings | No in Web UI, most settings at CLI | Yes | Yes (Basic only)
Profile | Yes | Yes | Yes
Add a new email address | Register / Invite | Yes | No
Roles management | On web board+[API](REST-API-Role) | No | Yes
Settings management | Only some at Web UI, most settings at CLI | No | Yes
Users management | Add/Remove Orgs/Teams/Users | Yes? | Yes
Permanently delete your entire account forever? | No | Yes | Yes (Admin can delete)
## Apps for productivity: Login
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Login with username or email | Yes | Yes | Yes
LDAP login | Standalone: [Yes](LDAP). Sandstorm: Yes. | No | $ Yes
SAML login | Standalone: [Not yet](https://github.com/wekan/wekan/issues/708). Sandstorm: Yes | No | No
Google login | Not yet, needs fixes to [OAuth2](OAuth2) | Yes | No
GitHub login | Standalone: Not yet, needs fixes to [OAuth2](OAuth2). Sandstorm: Yes. | No | No
Passwordless email login | Standalone: No. Sandstorm: Yes. | No | No
## Apps for productivity: Import / Export
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Import board from Trello | Yes | No | Yes
Import board from Wekan | Yes | No | Yes
Import from GitHub | No | No | $ Yes
Export board to Wekan JSON, includes attachments | Yes | No | ?
Export board to CSV | Yes | $ Yes | $ Yes
Export board to Excel | Yes | ? | ?
Export JSON card | No | Yes | No
Export CSV card | No | No | Yes
Change visibility | Yes | Yes | Yes
Change visibility in boards listing | No | No | Yes
Activities difference between previous version | No | No | Yes
Change background | Color only | Color and image | Color and image
Change background - custom | No | $ Gold or Business Class Only | Yes
Background image from flickr | No | No | Yes
Productivity beats | No | No | Yes (Alpha)
Show attachments in board | No, only at each card | No | Yes
## Apps for productivity
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Apps (Power-ups) | All integrated in, no separate plugin/app install | Yes | Yes
Custom Field App | [Yes](Custom-Fields) | Yes | $ Yes
Estimated Time Custom Field App / Time Tracking | Reveived/Start/End/Due/End Date, Spent time, Requested By, Assigned By. No reports. For more advanced, [Not yet](https://github.com/wekan/wekan/issues/812) | Yes, 3rd party Burndown, Harvest etc | $ Yes
Analytics | [Magento integration](https://github.com/wekan/wekan-snap/wiki/Supported-settings-keys) | No | No
Hide card additional information | Yes, card and board activities | Yes, card activities | Yes, card activities
Linked Cards and Boards | [Yes](https://github.com/wekan/wekan/pull/1592) | Yes, Related Cards and Boards | ?
Subtasks | [Yes](https://github.com/wekan/wekan/pull/1723) | Yes, Hello Epics Power-Up | ?
Board Gantt view | No | No | $ Yes
Gogs (Git Service) Integration | [Yes](https://github.com/wekan/wekan-gogs) | No | No
Activities listing | No, only at board | No | Yes
Introduction video | No | No | Yes
List sorting by due date | No | No | Yes
Home screen | No | No | Yes
Apps Integration | All integrated in | Yes | Yes
Chat | No. You could use [Rocket.Chat](OAuth2) | No | $ Yes
Dashboard Charts | [Not yet](https://github.com/wekan/wekan-dashing-go) | No | $ Yes
Hide Card Created Date App | No | No | Yes
Hide Card ID App | No | No | Yes
Canned Response App | No | No | $ Yes
Auto Archive Expired Cards App | No | No | $ Yes
Support Desk | No | No | $ Yes
Card Template App | Copy Checklist Template to Multiple Cards | Yes | $ Yes
Slack | [Yes](Outgoing-Webhook-to-Discord) | Yes | $ Yes
Amazon Echo | No | No | $ Yes
Collaborate/TogetherJS | [Not yet](Friend) | No | Yes
Gmail Add-on | No | Yes | Yes
Hangouts Chat bot | No | Yes | $ Yes
Print board | No | No | $ Yes
## Apps for productivity: Checklist Templates
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
Website QA Checklist | No | No | $ Yes
SEO Checklist | No | No | $ Yes
## Apps for productivity: Mobile Apps
Features | Wekan | Trello | Restyaboard
------------ | ------------- | ------------- | -------------
iOS Mobile App | [Not yet](Friend). Mobile Chrome browser works. | Yes | Yes
Android Mobile App | [Yes](Browser-compatibility-matrix) | Yes | Yes
Windows Microsoft Store App | [Yes](Browser-compatibility-matrix) | ? | ?
Ubuntu Touch OpenStore App | [Yes](Browser-compatibility-matrix) | ? | ?

View file

@ -0,0 +1,5 @@
https://github.com/wekan/wekan/discussions/4487
https://github.com/kjgcoop/very-rough-wekan-from-zk
https://github.com/wekan/very-rough-wekan-from-zk