Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: Huy-Ngo/acanban
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.0.1
Choose a base ref
...
head repository: Huy-Ngo/acanban
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref

Commits on Nov 27, 2020

  1. Copy the full SHA
    5a3f665 View commit details

Commits on Nov 30, 2020

  1. Copy the full SHA
    9e76234 View commit details

Commits on Dec 5, 2020

  1. Integrate with RethinkDB

    McSinyx committed Dec 5, 2020
    Copy the full SHA
    3df2e9a View commit details
  2. Add stubs for RethinkDB

    McSinyx committed Dec 5, 2020
    Copy the full SHA
    b32b09d View commit details
  3. Restructure docs

    McSinyx committed Dec 5, 2020
    Copy the full SHA
    656c740 View commit details

Commits on Dec 6, 2020

  1. Copy the full SHA
    2a6e04a View commit details

Commits on Dec 7, 2020

  1. Set up authentication base

    McSinyx committed Dec 7, 2020
    Copy the full SHA
    68899b7 View commit details
  2. Implement registration page

    McSinyx committed Dec 7, 2020
    Copy the full SHA
    80af5dd View commit details
  3. Implement login/logout

    McSinyx committed Dec 7, 2020
    Copy the full SHA
    e275aa7 View commit details
  4. Test basic authentication

    Turns out Role was mal-used.  I'm really surprised that
    mypy didn't catch that since it clearly violated static typing.
    
    The test data are now declared as a fixture instead of being hardcoded.
    McSinyx committed Dec 7, 2020
    Copy the full SHA
    df1f253 View commit details

Commits on Dec 8, 2020

  1. Update database schema

    Huy-Ngo committed Dec 8, 2020
    Copy the full SHA
    d15ec8b View commit details
  2. Copy the full SHA
    39b948f View commit details

Commits on Dec 10, 2020

  1. Add base HTLM template

    DDHLong authored and Huy-Ngo committed Dec 10, 2020
    Copy the full SHA
    b25f55e View commit details
  2. Revise index page

    DDHLong authored and Huy-Ngo committed Dec 10, 2020
    Copy the full SHA
    99f136b View commit details
  3. Style login page

    DDHLong authored and Huy-Ngo committed Dec 10, 2020
    Copy the full SHA
    03edab2 View commit details
  4. Style registration page

    DDHLong authored and Huy-Ngo committed Dec 10, 2020
    Copy the full SHA
    e8ef9c8 View commit details

Commits on Dec 11, 2020

  1. Remove admin from selectable roles

    Allowing anyone to register as admin is not wise
    Huy-Ngo committed Dec 11, 2020
    Copy the full SHA
    e7665bf View commit details
  2. Wrap RethinkDB around User

    Huy-Ngo committed Dec 11, 2020
    Copy the full SHA
    acc138c View commit details
  3. Copy the full SHA
    d2ce526 View commit details
  4. Copy the full SHA
    64cf5a9 View commit details
  5. Bump to version 0.0.2

    Huy-Ngo authored Dec 11, 2020
    Copy the full SHA
    67f817c View commit details

Commits on Dec 12, 2020

  1. Simplify the index page

    DDHLong authored and Huy-Ngo committed Dec 12, 2020
    Copy the full SHA
    9298d18 View commit details

Commits on Dec 16, 2020

  1. Wrap RethinkDB objects in a mixin class

    This reduce the fraction when declare new wrapper classes:
    It is no longer needed to define (or test) each descriptor individually.
    
    The old test for User is now used as the generic test for the wrapper.
    McSinyx committed Dec 16, 2020
    Copy the full SHA
    ec8b777 View commit details

Commits on Dec 17, 2020

  1. Copy the full SHA
    5d5ca43 View commit details

Commits on Dec 18, 2020

  1. Read RethinkDB configuration from files

    This only happens in __main__.py, i.e. when one calls python -m acanban.
    During automated testing, the configuration files are not loaded
    to maintain isolation.
    
    In addition, loading RethinkDB dump is now done by Tox
    for the convenience of local testing.
    McSinyx committed Dec 18, 2020
    Copy the full SHA
    78b903f View commit details
  2. Document configuration files

    McSinyx committed Dec 18, 2020
    Copy the full SHA
    5645304 View commit details

Commits on Dec 19, 2020

  1. Add favicon

    Huy-Ngo authored Dec 19, 2020
    Copy the full SHA
    9bbadf5 View commit details

Commits on Dec 20, 2020

  1. Rework stylesheet and templates

    The dropdown arrow is taken from Adwaita's action/go-down-symbolic.
    
    Co-authored-by: Đào Dương Hoàng Long <hoanglonghoab@gmail.com>
    McSinyx and DDHLong committed Dec 20, 2020
    Copy the full SHA
    1f84043 View commit details
  2. Add search to header bar and stay closer to GH-68

    Co-authored-by: Đào Dương Hoàng Long <hoanglonghoab@gmail.com>
    McSinyx and DDHLong committed Dec 20, 2020
    Copy the full SHA
    55ea657 View commit details

Commits on Dec 22, 2020

  1. Copy the full SHA
    b82110a View commit details

Commits on Dec 24, 2020

  1. Copy the full SHA
    dbda915 View commit details
  2. Bump version to 0.0.3

    9a24f0 authored Dec 24, 2020
    Copy the full SHA
    c025759 View commit details

Commits on Dec 31, 2020

  1. Add endpoints for user profile

    Huy-Ngo authored and McSinyx committed Dec 31, 2020
    Copy the full SHA
    1f5b2ed View commit details
  2. Create templates for user endpoints

    Huy-Ngo authored and McSinyx committed Dec 31, 2020
    Copy the full SHA
    afbb213 View commit details
  3. Add fixtures for logged in users

    Huy-Ngo authored and McSinyx committed Dec 31, 2020
    Copy the full SHA
    e4a173a View commit details
  4. Add test for user profile

    Huy-Ngo authored and McSinyx committed Dec 31, 2020
    Copy the full SHA
    0f63c55 View commit details
  5. Define project's objective

    Co-authored-by: Ngô Ngọc Đức Huy <duchuy29092000@gmail.com>
    McSinyx and Huy-Ngo authored Dec 31, 2020
    Copy the full SHA
    d2b311a View commit details
  6. Copy the full SHA
    bea388d View commit details

Commits on Jan 3, 2021

  1. Build PDF via CI

    McSinyx committed Jan 3, 2021
    Copy the full SHA
    7d56d50 View commit details
  2. Copy the full SHA
    c658ec4 View commit details
  3. Copy the full SHA
    4ec6e86 View commit details

Commits on Jan 4, 2021

  1. Copy the full SHA
    740b5ea View commit details
  2. Proxy IPFS gateway

    McSinyx authored Jan 4, 2021
    Copy the full SHA
    c0ef1ec View commit details

Commits on Jan 5, 2021

  1. Copy the full SHA
    90e3a86 View commit details
  2. Add project info page

    McSinyx authored Jan 5, 2021
    Copy the full SHA
    46a2107 View commit details
  3. Copy the full SHA
    ebb62ac View commit details

Commits on Jan 8, 2021

  1. Copy the full SHA
    a435530 View commit details

Commits on Jan 12, 2021

  1. Copy the full SHA
    f2a9d5e View commit details

Commits on Jan 13, 2021

  1. Add project lists to user profile

    Huy-Ngo authored and McSinyx committed Jan 13, 2021
    Copy the full SHA
    97221e6 View commit details
  2. Copy the full SHA
    ae57f3d View commit details
Showing with 7,428 additions and 1,493 deletions.
  1. +35 −0 .build.yml
  2. +0 −7 .builds/lint.yml
  3. +0 −7 .builds/test.yml
  4. +12 −0 .github/FUNDING.yml
  5. +0 −35 .github/workflows/docs.yml
  6. +49 −0 README.md
  7. +0 −7 docs/source/architecture/index.rst
  8. +0 −48 docs/source/architecture/mechanisms.rst
  9. +0 −41 docs/source/conf.py
  10. +0 −9 docs/source/index.rst
  11. +0 −4 docs/source/requirements/glossary.rst
  12. +0 −10 docs/source/requirements/index.rst
  13. +0 −2 docs/source/requirements/problem-statement.rst
  14. +0 −32 docs/source/requirements/supplementary-specification.rst
  15. +0 −1,014 docs/source/requirements/use-case-model.rst
  16. +0 −114 docs/source/solution/database.rst
  17. +0 −62 docs/source/solution/distribution.rst
  18. +0 −8 docs/source/solution/index.rst
  19. +2 −1 mypy.ini
  20. 0 {docs → paper}/Makefile
  21. BIN paper/build/latex/acanban.pdf
  22. 0 {docs → paper}/make.bat
  23. +30 −0 paper/source/appendix/acknowledgement.rst
  24. +101 −0 paper/source/appendix/glossary.rst
  25. +8 −0 paper/source/appendix/index.rst
  26. +39 −0 paper/source/conclusion.rst
  27. +70 −0 paper/source/conf.py
  28. +17 −0 paper/source/index.rst
  29. +167 −0 paper/source/intro.rst
  30. +33 −0 paper/source/latex/acanban.sty
  31. +41 −0 paper/source/latex/title-page.tex
  32. BIN paper/source/latex/usth-logo.pdf
  33. +29 −0 paper/source/meth/arch-alt.puml
  34. +88 −0 paper/source/meth/arch.rst
  35. +66 −0 paper/source/meth/choices.rst
  36. +15 −0 paper/source/meth/database/entities/artifact.rst
  37. +22 −0 paper/source/meth/database/entities/comment.rst
  38. +26 −0 paper/source/meth/database/entities/file.rst
  39. +50 −0 paper/source/meth/database/entities/index.rst
  40. +50 −0 paper/source/meth/database/entities/project.rst
  41. +25 −0 paper/source/meth/database/entities/rel.puml
  42. +55 −0 paper/source/meth/database/entities/task.rst
  43. +43 −0 paper/source/meth/database/entities/user.rst
  44. +16 −0 paper/source/meth/database/index.rst
  45. BIN paper/source/meth/database/tables/images/discussion.png
  46. +78 −0 paper/source/meth/database/tables/images/discussion.puml
  47. +89 −0 paper/source/meth/database/tables/images/discussion.svg
  48. +16 −0 paper/source/meth/database/tables/images/file.puml
  49. +27 −0 paper/source/meth/database/tables/images/file.svg
  50. +78 −0 paper/source/meth/database/tables/images/project.puml
  51. +89 −0 paper/source/meth/database/tables/images/project.svg
  52. +13 −0 paper/source/meth/database/tables/images/student.puml
  53. +24 −0 paper/source/meth/database/tables/images/student.svg
  54. +51 −0 paper/source/meth/database/tables/index.rst
  55. +15 −0 paper/source/meth/index.rst
  56. +99 −0 paper/source/meth/process.rst
  57. +29 −0 paper/source/meth/uc-anal-design/file.rst
  58. +15 −0 paper/source/meth/uc-anal-design/index.rst
  59. +187 −0 paper/source/meth/uc-anal-design/project.rst
  60. +126 −0 paper/source/meth/uc-anal-design/security.rst
  61. +24 −0 paper/source/meth/uc-anal-design/uml/file-upload.puml
  62. +18 −0 paper/source/meth/uc-anal-design/uml/login-no-user.puml
  63. +17 −0 paper/source/meth/uc-anal-design/uml/login-wrong-pass.puml
  64. +19 −0 paper/source/meth/uc-anal-design/uml/login.puml
  65. +16 −0 paper/source/meth/uc-anal-design/uml/p-create-assistant.puml
  66. +13 −0 paper/source/meth/uc-anal-design/uml/p-create-not-auth.puml
  67. +24 −0 paper/source/meth/uc-anal-design/uml/p-create-success.puml
  68. +15 −0 paper/source/meth/uc-anal-design/uml/p-edit-no-id.puml
  69. +13 −0 paper/source/meth/uc-anal-design/uml/p-edit-not-auth.puml
  70. +19 −0 paper/source/meth/uc-anal-design/uml/p-edit-not-member.puml
  71. +25 −0 paper/source/meth/uc-anal-design/uml/p-edit-success.puml
  72. +16 −0 paper/source/meth/uc-anal-design/uml/p-info-no-id.puml
  73. +13 −0 paper/source/meth/uc-anal-design/uml/p-info-not-auth.puml
  74. +19 −0 paper/source/meth/uc-anal-design/uml/p-info-not-member.puml
  75. +19 −0 paper/source/meth/uc-anal-design/uml/p-info-success.puml
  76. +16 −0 paper/source/meth/uc-anal-design/uml/p-member-add-assistant.puml
  77. +16 −0 paper/source/meth/uc-anal-design/uml/p-member-add-exist-name.puml
  78. +16 −0 paper/source/meth/uc-anal-design/uml/p-member-add-not-registered.puml
  79. +17 −0 paper/source/meth/uc-anal-design/uml/p-member-add-success.puml
  80. +13 −0 paper/source/meth/uc-anal-design/uml/p-member-list.puml
  81. +18 −0 paper/source/meth/uc-anal-design/uml/register-exist-mail.puml
  82. +20 −0 paper/source/meth/uc-anal-design/uml/register-exist-username.puml
  83. +17 −0 paper/source/meth/uc-anal-design/uml/register-wrong-role.puml
  84. +21 −0 paper/source/meth/uc-anal-design/uml/register.puml
  85. +10 −0 paper/source/meth/uc-anal-design/uml/sequence-template.puml
  86. +133 −0 paper/source/meth/ux.rst
  87. +43 −0 paper/source/req/break-down.rst
  88. +16 −0 paper/source/req/index.rst
  89. +66 −0 paper/source/req/suppl-spec.rst
  90. +64 −0 paper/source/req/use-case/academic.rst
  91. +156 −0 paper/source/req/use-case/collab.rst
  92. +13 −0 paper/source/req/use-case/index.rst
  93. +116 −0 paper/source/req/use-case/other.rst
  94. +50 −0 paper/source/req/users.rst
  95. +26 −0 paper/source/req/wbs.puml
  96. +78 −0 paper/source/result.rst
  97. +5 −4 pyproject.toml
  98. +121 −6 src/acanban/__init__.py
  99. +15 −6 src/acanban/__main__.py
  100. +137 −0 src/acanban/auth.py
  101. +43 −6 src/acanban/config.py
  102. +73 −0 src/acanban/db.py
  103. +105 −0 src/acanban/ipfs.py
  104. +228 −0 src/acanban/project.py
  105. +0 −29 src/acanban/static/__init__.py
  106. BIN src/acanban/static/android-chrome-192x192.png
  107. BIN src/acanban/static/android-chrome-512x512.png
  108. BIN src/acanban/static/apple-touch-icon.png
  109. +1 −0 src/acanban/static/collaboration.svg
  110. +5 −0 src/acanban/static/dropdown-icon.svg
  111. BIN src/acanban/static/favicon-16x16.png
  112. BIN src/acanban/static/favicon-32x32.png
  113. BIN src/acanban/static/favicon.ico
  114. +0 −8 src/acanban/static/index.html
  115. +1 −0 src/acanban/static/site.webmanifest
  116. +316 −0 src/acanban/static/style.css
  117. +158 −0 src/acanban/task.py
  118. +60 −0 src/acanban/templates/base.html
  119. +34 −0 src/acanban/templates/index.html
  120. +36 −0 src/acanban/templates/login.html
  121. +21 −0 src/acanban/templates/myproject.html
  122. +33 −0 src/acanban/templates/project-create.html
  123. +39 −0 src/acanban/templates/project-edit.html
  124. +31 −0 src/acanban/templates/project-info.html
  125. +43 −0 src/acanban/templates/project-list.html
  126. +50 −0 src/acanban/templates/project-members.html
  127. +75 −0 src/acanban/templates/project-report.html
  128. +76 −0 src/acanban/templates/project-slides.html
  129. +47 −0 src/acanban/templates/project-tab.html
  130. +49 −0 src/acanban/templates/project-tasks.html
  131. +43 −0 src/acanban/templates/register.html
  132. +43 −0 src/acanban/templates/task-create.html
  133. +86 −0 src/acanban/templates/task.html
  134. +44 −0 src/acanban/templates/user-edit.html
  135. +48 −0 src/acanban/templates/user.html
  136. +65 −0 src/acanban/user.py
  137. 0 {src → stubs}/appdirs.pyi
  138. +4 −0 stubs/bleach_allowlist.pyi
  139. +9 −0 stubs/cid.pyi
  140. +8 −0 stubs/humanize.pyi
  141. +15 −0 stubs/rethinkdb/__init__.pyi
  142. +21 −0 stubs/rethinkdb/ast.pyi
  143. +9 −0 stubs/rethinkdb/errors/__init__.pyi
  144. 0 stubs/rethinkdb/trio_net/__init__.pyi
  145. +8 −0 stubs/rethinkdb/trio_net/net_trio.pyi
  146. +1 −0 tests/assets/acanban.toml
  147. +3 −0 tests/assets/ipfs.toml
  148. +661 −0 tests/assets/ipfs/LICENSE
  149. BIN tests/assets/ipfs/static/favicon.ico
  150. +1 −0 tests/assets/rethinkdb.toml
  151. +29 −0 tests/assets/rethinkdump/test/files.info
  152. +14 −0 tests/assets/rethinkdump/test/files.json
  153. +29 −0 tests/assets/rethinkdump/test/projects.info
  154. +460 −0 tests/assets/rethinkdump/test/projects.json
  155. +16 −0 tests/assets/rethinkdump/test/users.info
  156. +177 −0 tests/assets/rethinkdump/test/users.json
  157. +58 −0 tests/conftest.py
  158. +57 −0 tests/test_auth.py
  159. +38 −4 tests/test_config.py
  160. +52 −0 tests/test_db_wrapper.py
  161. +168 −0 tests/test_project.py
  162. +40 −0 tests/test_route.py
  163. +0 −25 tests/test_static.py
  164. +128 −0 tests/test_task.py
  165. +58 −0 tests/test_user.py
  166. +13 −4 tox.ini
35 changes: 35 additions & 0 deletions .build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
image: debian/buster
arch: amd64
packages:
- python3-pip
- python3-venv
- rethinkdb
- wget
repositories:
rethinkdb: https://download.rethinkdb.com/repository/debian-buster buster main 539A3A8C6692E6E3F69B3FE81D85E93F801BB43F
sources:
- https://github.com/Huy-Ngo/acanban
tasks:
- ipfs: |
wget https://dist.ipfs.io/go-ipfs/v0.7.0/go-ipfs_v0.7.0_linux-amd64.tar.gz
tar -xvzf go-ipfs_v0.7.0_linux-amd64.tar.gz
sudo go-ipfs/install.sh
rm -r go-ipfs*
ipfs init
- ci: |
ipfs daemon &
rethinkdb --no-http-admin &
python3 -m pip install tox
python3 -m tox -c acanban
- cd: |
if [[ $(git -C acanban tag --points-at HEAD) ]]
then
python3 -m pip install --upgrade pip
python3 -m pip install build twine
python3 -m build --sdist --wheel acanban
python3 -m twine upload acanban/dist/*
fi
environment:
PIP_PROGRESS_BAR: 'off'
secrets:
- ee526a22-d848-4a9d-bb22-3b680b2bcc5a
7 changes: 0 additions & 7 deletions .builds/lint.yml

This file was deleted.

7 changes: 0 additions & 7 deletions .builds/test.yml

This file was deleted.

12 changes: 12 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# These are supported funding model platforms

github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: __huy_ngo__
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: McSinyx
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
35 changes: 0 additions & 35 deletions .github/workflows/docs.yml

This file was deleted.

49 changes: 49 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -32,6 +32,53 @@ Restart=on-failure
WantedBy=default.target
```

## Configuration

Acanban's configuration files are looked for
in [user and site config dir][appdirs] (in that order),
with `acanban` namespace.

With third-party configuration separated to dedicated files,
`acanban.toml` may define the following keys:

```toml
# Used for HTTP to HTTPS redirection if defined
domain = 'example.com'
```

### Hypercorn

[Hypercorn configuration][hypercorn.toml] is loaded from `hypercorn.toml`.
Acanban does not override any of the server's defaults.

### RethinkDB

Values defined in `rethinkdb.toml` will be passed to the RethinkDB client.
Below are some of the fields that commonly need to be configured
and their default values:

```toml
host = 'localhost'
port = 28015
user = 'admin'
timeout = 20
db = 'test'
```

### IPFS

Custom `ipfs.toml` must define the following keys,
whose default values are listed as follows:

```toml
[api]
base = 'http://127.0.0.1:5001/api/v0'

[gateway]
base = 'http://127.0.0.1:8080/ipfs'
fallback = 'https://ipfs.io'
```

## Hacking

First clone the repository and install Acanban as editable:
@@ -54,3 +101,5 @@ tox
[Kanban board]: https://en.wikipedia.org/wiki/Kanban_board
[RethinkDB]: https://rethinkdb.com/docs/install/
[IPFS]: https://ipfs.io
[appdirs]: https://pypi.org/project/appdirs/
[hypercorn.toml]: https://pgjones.gitlab.io/hypercorn/how_to_guides/configuring.html
7 changes: 0 additions & 7 deletions docs/source/architecture/index.rst

This file was deleted.

48 changes: 0 additions & 48 deletions docs/source/architecture/mechanisms.rst

This file was deleted.

41 changes: 0 additions & 41 deletions docs/source/conf.py

This file was deleted.

9 changes: 0 additions & 9 deletions docs/source/index.rst

This file was deleted.

4 changes: 0 additions & 4 deletions docs/source/requirements/glossary.rst

This file was deleted.

10 changes: 0 additions & 10 deletions docs/source/requirements/index.rst

This file was deleted.

2 changes: 0 additions & 2 deletions docs/source/requirements/problem-statement.rst

This file was deleted.

32 changes: 0 additions & 32 deletions docs/source/requirements/supplementary-specification.rst

This file was deleted.

Loading