Skip to content
This repository has been archived by the owner on Nov 10, 2022. It is now read-only.

Milestone 1.3.0 #53

Draft
wants to merge 45 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
abb0c2e
refactor: add vue-router
severo Jan 8, 2020
70b2da2
feat: use URL as source of truth for image src
severo Jan 9, 2020
d094fb0
fix: imageSrc query parameter is UUID for uploaded images
severo Jan 9, 2020
70041bd
feat: add image to gallery if not already present
severo Jan 9, 2020
d469e45
refactor: simplify the code
severo Jan 9, 2020
06b938e
feat: validate the imageStr query string
severo Jan 9, 2020
0294f1e
refactor: rewrite two components as a class components
severo Jan 9, 2020
09c0205
fix: fix incoherence between localId and query parameter
severo Jan 9, 2020
ec55552
feat: add categories and points to the shareable URL
severo Jan 10, 2020
b407a4a
fix: update URL only at the end of a point's move
severo Jan 13, 2020
a0dc8af
fix: only update the background image when needed
severo Jan 13, 2020
7ab206b
fix: add a new image to the gallery
severo Jan 13, 2020
912ecc3
feat: restrict precision of points to 2 decimals
severo Jan 13, 2020
1b11657
fix: record points moves in history
severo Jan 13, 2020
c4496bf
refactor: centralize .push in a new file
severo Jan 14, 2020
060fc36
refactor: rename exportableComposition to composition
severo Jan 14, 2020
bddf28e
fix: improve state update flow
severo Jan 14, 2020
637c67b
feat: add current composition spec to tables panel
severo Jan 15, 2020
f07469f
feat: add current composition JSON in tables view
severo Jan 15, 2020
101e872
feat: add elements to activate collaboration
severo Jan 15, 2020
013469b
feat: add socket.io
severo Jan 16, 2020
6e6edb7
refactor: add Guest type + move src/utils/types.ts to src/types/index.ts
severo Jan 16, 2020
657bab2
feat: basic client-side implementation for a socket.io room
severo Jan 16, 2020
84efa50
feat: use nanoid to generate a short random guest name
severo Jan 16, 2020
6d3ad30
feat: disconnect the socket before closing the window
severo Jan 16, 2020
fcc13b8
feat: change my guest name
severo Jan 16, 2020
b28a27a
feat: add a link to a jitsi room
severo Jan 16, 2020
88fe77f
feat: change socket server to heroku
severo Jan 16, 2020
19506e9
feat: connect to localsocket server by default on dev mode
severo Jan 16, 2020
35f5eca
feat: improve UI of the room
severo Jan 16, 2020
876b92b
feat: allow the user to enter its name + persist in local storage
severo Jan 16, 2020
7aaa4e6
feat: share the composition in the room
severo Jan 16, 2020
c4d7137
feat: send automerge changes to the socket server
severo Jan 24, 2020
9c17f61
refactor: remove dead code
severo Jan 26, 2020
08e50e0
refactor: improve name
severo Jan 26, 2020
e570a61
refactor: make Gallery component directly call compositions store
severo Jan 26, 2020
22d8eb5
refactor: make Home call compositions directly
severo Jan 26, 2020
77e0406
refactor: better names
severo Jan 26, 2020
d53a10e
refactor: respect semantics for mutations and actions
severo Jan 26, 2020
428847e
feat: change the data model, no more based on the URL
severo Jan 26, 2020
3c7d05f
feat: select a default image randomly
severo Jan 26, 2020
d763499
feat: ensure the first image (placeholder) is not chosen
severo Jan 26, 2020
90fcf16
feat: complete rewrite
severo Jan 27, 2020
3dcb2e5
feat: update socket.io server
severo Jan 27, 2020
0d86004
feat: revert
severo Jan 27, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 42 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,20 @@ https://occupapp.now.sh/

## Versions

Current version is deployed at https://occupapp.now.sh/, and follows the [master branch](https://github.com/LyonDataViz/occupapp/tree/master).
Current version is deployed at https://occupapp.now.sh/, and follows the
[master branch](https://github.com/LyonDataViz/occupapp/tree/master).

Previous versions:

- Occupapp v1.2.1 is deployed at https://occupapp-exggft5q9.now.sh/, and corresponds to the [tag v1.2.1](https://github.com/LyonDataViz/occupapp/tree/v1.2.1).
- Occupapp v1.2.0 is deployed at https://occupapp-khxo9ktm7.now.sh/, and corresponds to the [tag v1.2.0](https://github.com/LyonDataViz/occupapp/tree/v1.2.0).
- Occupapp v1.1.0 is deployed at https://occupapp-qf17v5yfl.now.sh/, and corresponds to the [tag v1.1.0](https://github.com/LyonDataViz/occupapp/tree/v1.1.0).
- Occupapp v1.2.1 is deployed at https://occupapp-exggft5q9.now.sh/, and
corresponds to the
[tag v1.2.1](https://github.com/LyonDataViz/occupapp/tree/v1.2.1).
- Occupapp v1.2.0 is deployed at https://occupapp-khxo9ktm7.now.sh/, and
corresponds to the
[tag v1.2.0](https://github.com/LyonDataViz/occupapp/tree/v1.2.0).
- Occupapp v1.1.0 is deployed at https://occupapp-qf17v5yfl.now.sh/, and
corresponds to the
[tag v1.1.0](https://github.com/LyonDataViz/occupapp/tree/v1.1.0).

See [CHANGELOG.md](./CHANGELOG.md) for more details.

Expand Down Expand Up @@ -72,7 +79,8 @@ Other targets:
and then edit [CHANGELOG.md](./CHANGELOG.md) to add:

- Online demo URL: see https://zeit.co/lyondataviz/occupapp/deployments
- Issues milestone (if corresponding): see https://github.com/LyonDataViz/occupapp/milestones
- Issues milestone (if corresponding): see
https://github.com/LyonDataViz/occupapp/milestones
- Zip download: see https://github.com/LyonDataViz/occupapp/releases

Build upon Vue.js, see [Configuration Reference](https://cli.vuejs.org/config/).
Expand Down Expand Up @@ -100,7 +108,35 @@ The Vue components are developed as TypeScript classes. See:
The Vuex stores are dynamic modules, and use Typescript. See
https://championswimmer.in/vuex-module-decorators/.

## Documentation
## Development documentation

The Vuex state is managed as follows.

The URL query parameters are the source of trust, and define the current
composition. Note that if the URL doesn't contain any query parameters, or if
they are insufficient to recreate a complete composition, the application will
be routed to a new URL, with missing parameters filled with default values,
possibly several times, until converging to a valid URL.

Once the URL has been parsed successfully, the current composition is stored in
store/compositions, that contains the compositions associated to all the images
(the default ones, and any other updated or linked image). Note that these
compositions are not persisted in the URL, except the current one.

The Vuex state also contains other data that is not persisted in the URL:

- derived data: (such as store/current/backgroundImage.ts). They don't contain
any data by their own, but react to current composition change by updating
their cached getters. They also provide helpers to update the current
composition (ie. to route to a new URL). They have access to the router.
- temporary data, such as the points selection used to delete various points at
once (it's cleared every time a composition is changed)
- cached data: store/current/backgroundImage.ts contains the background image,
and store/current/pointMetrics contains the points metrics that are computed
from the current composition
- general data, such as the color vs black and white switch for background image

## Credits

Project developed for the [LIRIS M2i project](https://projet.liris.cnrs.fr/mi2/)
by Sylvain Lesage with Celia Gremillet, Philippe Rivière, Gabin Rolland,
Expand Down
Loading