All Projects โ†’ antoinejaussoin โ†’ Retro Board

antoinejaussoin / Retro Board

Licence: gpl-3.0
Retrospective Board

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Retro Board

Js Stack From Scratch
๐Ÿ› ๏ธโšก Step-by-step tutorial to build a modern JavaScript stack.
Stars: โœญ 18,814 (+2924.76%)
Mutual labels:  webpack, yarn, jest, socket-io
Docker Django Example
A production ready example Django app that's using Docker and Docker Compose.
Stars: โœญ 86 (-86.17%)
Mutual labels:  webpack, postgres, docker-compose
Front End Guide
๐Ÿ“š Study guide and introduction to the modern front end stack.
Stars: โœญ 14,073 (+2162.54%)
Mutual labels:  webpack, yarn, jest
Wordpress Starter
๐Ÿ“ฆ A starter template for WordPress websites
Stars: โœญ 26 (-95.82%)
Mutual labels:  webpack, yarn, docker-compose
React Boilerplate
This project is deprecated. Please use CRA instead.
Stars: โœญ 88 (-85.85%)
Mutual labels:  webpack, yarn, jest
Js Stack Boilerplate
Final boilerplate code of the JavaScript Stack from Scratch tutorial โ€“
Stars: โœญ 145 (-76.69%)
Mutual labels:  webpack, yarn, jest
Express Webpack React Redux Typescript Boilerplate
๐ŸŽ‰ A full-stack boilerplate that using express with webpack, react and typescirpt!
Stars: โœญ 156 (-74.92%)
Mutual labels:  webpack, yarn, jest
Quickshare
Quick and simple file sharing between different devices.
Stars: โœญ 190 (-69.45%)
Mutual labels:  webpack, yarn, jest
coconat
๐Ÿฅ StarterKit Builder for rocket-speed App creation on ๐Ÿš€ React 17 + ๐Ÿ“™ Redux 4 + ๐Ÿš  Router 5 + ๐Ÿ“ช Webpack 5 + ๐ŸŽณ Babel 7 + ๐Ÿ“œ TypeScript 4 + ๐Ÿš” Linters 23 + ๐Ÿ”ฅ HMR 3
Stars: โœญ 95 (-84.73%)
Mutual labels:  hooks, yarn, jest
Vue Chess
Multiplayer online chess game use Vue , Nodejs, Webpack, Em6, Socket.io, Mongodb, Express
Stars: โœญ 350 (-43.73%)
Mutual labels:  webpack, socket-io
Pwa
An opinionated progressive web app boilerplate
Stars: โœญ 353 (-43.25%)
Mutual labels:  webpack, jest
Typescript Library Starter
Starter kit with zero-config for building a library in TypeScript, featuring RollupJS, Jest, Prettier, TSLint, Semantic Release, and more!
Stars: โœญ 3,943 (+533.92%)
Mutual labels:  webpack, jest
Gulp Scss Starter
Frontend development with pleasure. SCSS version
Stars: โœญ 339 (-45.5%)
Mutual labels:  webpack, yarn
Vue Cli
๐Ÿ“ƒๅŸบไบŽ Vue3.0 Composition Api ๅฟซ้€Ÿๆž„ๅปบๅฎžๆˆ˜้กน็›ฎ
Stars: โœญ 335 (-46.14%)
Mutual labels:  webpack, hooks
Electron React Boilerplate
A Foundation for Scalable Cross-Platform Apps
Stars: โœญ 18,727 (+2910.77%)
Mutual labels:  webpack, jest
Ts Monorepo
Template for setting up a TypeScript monorepo
Stars: โœญ 459 (-26.21%)
Mutual labels:  webpack, jest
Hyperstack
Hyperstack ALPHA https://hyperstack.org
Stars: โœญ 463 (-25.56%)
Mutual labels:  webpack, yarn
Nin
nin is ninjatool
Stars: โœญ 313 (-49.68%)
Mutual labels:  webpack, yarn
Cookiecutter Django Vue
Cookiecutter Django Vue is a template for Django-Vue projects.
Stars: โœญ 462 (-25.72%)
Mutual labels:  webpack, docker-compose
Clean Ts Api
API em NodeJs usando Typescript, TDD, Clean Architecture, Design Patterns e SOLID principles
Stars: โœญ 619 (-0.48%)
Mutual labels:  jest, docker-compose

retro-board

Build Status GitHub package.json version

This is a Retrospective Idea board, powering retrospected.com.

 

       

Retrospected.com

This project is both an actual product, and also a technology demo using the latest and greatest JavaScript/TypeScript libraries of the month.

It features the following technologies:

Previous versions, up to v1.0.1 featured the following libraries:

How to try it out ๐Ÿš€

You must have docker and docker-compose installed on your system.

  • Clone this repository
  • Then run docker-compose -f ./docker-compose.example.yml up -d.
  • Open your browser on http://localhost
  • (then please wait a few minutes the first time for the database to initialise)

How to run for development ๐Ÿ“

Prerequisites ๐Ÿ’ฟ

  • You must have docker and docker-compose installed on your system.
  • You must also have Node.js, version 15 (other recent versions will probably work too).
  • Yarn: Please install Yarn, as this mono-repo uses Yarn Workspaces which won't work with NPM.

Run ๐Ÿš€

  • Clone this repository
  • Run Postgres, Redis, PGAdmin locally:
    • cd ./retro-board/retro-board (that is the retro-board directory within the repository)
    • docker-compose up -d
    • cd ..
  • yarn to install the dependencies (not npm i!)
  • yarn build-common to build the shared module
  • yarn migrate to run the database migrations
  • yarn start-server to start the backend
  • Open another terminal
  • yarn start-ui on the second terminal to run the UI
  • Open your browser on http://localhost:3000

How to run for Production using Docker ๐Ÿณ

Prerequisites ๐Ÿ’ฟ

Run ๐Ÿš€

  • Copy docker-compose.example.yml to docker-compose.yml
  • Edit docker-compose.yml to change credentials and secrets
  • Optional: for ARM-based systems, use biarms/pgadmin4 instead
  • Run docker-compose up -d
  • Voilร !

This will run a production-ready version of Retrospected automatically, using Postgres and Redis. You don't need to have anything installed other than Docker. This will install and run:

  • Postgres
  • pgAdmin4 (Web UI for postgres)
  • Redis
  • The Retrospected Node.js Backend
  • The Retrospected React Frontend, served by nginx.

How to run for Production using Kubernetes โ˜ธ

Please read the readme file in the k8s folder. Please note: Kubernetes example configs are not maintained, and are only provided as an example.

Backups ๐Ÿ’พ

When using the Docker deployment, your database runs from a container. But if you still need to make some backup of your data, you can do the following:

  • Get the docker database container ID by doing: docker ps
  • Run docker exec -t <docker_container_id> pg_dumpall -c -U postgres > dump_`date +%d-%m-%Y"_"%H_%M\_%S`.sql
  • To restore your databases: cat dump_1234.sql | docker exec -i <docker_container_id> psql -U postgres

How to run the tests โœ…

  • Clone this repository
  • yarn to install the dependencies (not npm i!)
  • yarn test to run the tests in watch mode
  • or yarn ci-test to run the tests once

Road-Map and ideas ๐Ÿš— ๐Ÿ’ก

  • Highlight posts where the user voted

Versions History

Version 4.1.4 (hotfix)

  • ๐Ÿ› Language loading issues

Version 4.1.3 (hotfix)

  • ๐Ÿ› New users were wrongly added with a quota of 0

Version 4.1.2 (hotfix)

  • ๐Ÿ› Fixed a bug with local storage

Version 4.1.1 (hotfix)

  • ๐Ÿ› Fixed a bug where Slack OAuth was disabled

Version 4.1.0

  • Adding a 30-day trial
  • Adding Microsoft OAuth 2.0
  • Code splitting: all pages have their own bundle now, for a faster first-load experience
  • Removing all import React from 'react'; imports, as they are now redundant.
  • Introducing Recoil.js (as an experiment)
  • Limiting the number of posts to 50 for free accounts

Version 4.0.5

  • ๐Ÿ› Fixed a bug whereby adding multiple cards on a single group wouldn't work correctly (only the first card would be persisted in that group). ๐Ÿ‘ Thanks to Daniel N. for reporting this by email.

Version 4.0.4

  • ๐Ÿ› Fixed a bug where adding an action was changing ownership of the post to the person adding the action. ๐Ÿ‘ Thanks @botactic! (#209)
  • Use TypeORM transactions for every database interactions, fixing some random races conditions.
  • Improving multi-arch support
  • Improving API calls and Sentry

Version 4.0.3

  • ๐Ÿ› Fixed a bug where groups couldn't be deleted if you didn't create them in the first place.

Version 4.0.2

  • ๐Ÿšจ Emergency fix, for a serious bug that made it seem like a lot of people were participant to your session. This was never the case, it was displaying every non-logged in people as spectators to your session erroneously.

Version 4.0.1

  • Added the list of participants to the bottom of the screen ๐Ÿง‘โ€๐Ÿ’ป
  • Added a notification on connection or disconnection of participants ๐ŸŸข ๐Ÿ”ด
  • Update OAuth photo on every login
  • Replaced GitHub OAuth library by a more recent version, to avoid deprecated GitHub API.
  • ๐Ÿ› Fixed a bug where the author of a new session wasn't registered as a participant
  • ๐Ÿ› Fixed a bug where online participants were not showing

Version 4.0.0

  • [โญ๏ธ Pro Feature] Encrypted Sessions: full client-side encryption of your data
  • [โญ๏ธ Pro Feature] Private Sessions: ensure only your colleagues can access your session
  • Full support for password-based accounts
  • Slack Authentication (OAuth) ๐Ÿ”‘
  • Replacing Travis by GitHub Actions for CI and Deployment ๐Ÿš€
  • New Freemium model
  • Adding dynamic HTML title for better browser experience. ๐Ÿ‘ Thanks @sam-pires! (#167)
  • Adding a search functionality to find the needle in your haystack. ๐Ÿ‘ Thanks @ayxos for the suggestion! (#171)
  • Improving the Post component to hide up/down votes when they are disabled. Also got rid of the "flippable" panel, all actions are now visible directly. ๐Ÿ‘ Thanks @Xyaren for pointing this out. (#150)
  • Automatic Backend code linting, and CI linting
  • Upgrade to TypeScript 4
  • Upgrade to React 17
  • Upgrade to Create-React-App 4
  • Upgrade to Socket.IO 3.0
  • ๐Ÿ‘ A big thanks to @wooddar for beta-testing and his great feedback!

Version 3.2.3

  • Fixed a bug with GitHub authentication, where the display name was not set (#165). ๐Ÿ‘ Thanks @hieuwu!

Version 3.2.2

  • ๐Ÿ› Fixed a bug where any user editing the name of the session would become owner of the session.

Version 3.2.1

Version 3.2.0

  • ๐Ÿ‡ฎ๐Ÿ‡น Improved Italian translation (๐Ÿ‘ Thanks @mventuri)
  • Ability to delete sessions, if you are authenticated and you are the author of the session (#116)
  • Allow changing the default language for new users via environement variables (#135)
  • Allow a moderator to blur cards written by others, to keep everything hidden until the end of the retrospective (#100)
  • Complete redesign of the Custom Session settings modal
  • Ability to modify session settings once the game has started. This is only available to the session moderator (author) (#92).
  • Ability to display past sessions for Anonymous users. This is limited to viewing past sessions on the same browser, any login to a different browser will create a different anonymous account, for safety reasons (#112).
  • Dependencies update

Version 3.1.1

  • ๐Ÿ‡ณ๐Ÿ‡ฑ Improved Dutch translation (๐Ÿ‘ Thanks @jghaanstra)
  • Dependencies update

Version 3.1.0

  • Multi-architecture support! Hello Rasperry Pi ๐Ÿ‡ ๐ŸŽ‰! And Apple Silicon ๐ŸŽ
  • Docker images are automatically compatible with ARM (arm64, v6, v7, v8)

Version 3.0.3

Version 3.0.2

  • Adding privacy policy, terms and conditions, GDPR support
  • ๐Ÿ› Fix various bugs reported by Sentry

Version 3.0.1

  • Improvements on the landing page experience
  • SEO

Version 3.0.0

  • Brand new landing page, and much improved look and feel ๐ŸŽ‰
  • Authentication using your favourite social media account:
    • GitHub
    • Google
    • Twitter
    • ...more coming!
  • Ability to re-order posts by drag-and-drop ๐Ÿš€
  • Ability to group posts together
  • Save your custom session settings as a default template
  • Giphy support ๐Ÿ˜ƒ
  • Improved homepage dashboard ๐Ÿ“ˆ

Version 2.2.4

  • ๐Ÿ‡ท๐Ÿ‡บ Russian Translation improvements (๐Ÿ‘ Thanks @regmagik)
  • Fixing logout button translation
  • Adding fetch polyfill for IE
  • Upgrading dependencies

Version 2.2.3

  • ๐Ÿ‡ฎ๐Ÿ‡น Italian Translation (๐Ÿ‘ Thanks @mventuri)
  • Re-enabling source maps for Sentry
  • Upgrading dependencies

Version 2.2.2

  • Allowing a user to disable voting (by setting the max number of votes to 0) (๐Ÿ‘ Thanks @imranismail)
  • Fixing an issue with Docker and Yarn's installation
  • Upgrading dependencies

Version 2.2.1

  • Adding Sentry support for the backend
  • Making Google Analytics and Sentry configurable at run-time (as in Docker run-time)
  • Adding Copy to clipboard compatibility for more browsers
  • Preventing the app from crashing when cookies are disabled on Firefox
  • Handling disconnections better by not reconnecting automatically and displaying a message instead.

Version 2.2.0

  • Kubernetes configs. Deploy Retrospected to the cloud! โ˜๏ธ ๐Ÿš€ โ˜ธ๏ธ
  • Making the backend scalable by making SocketIO use Redis to communicate between instances. This is disabled by default and is only useful for Kubernetes deployments.
  • The backend hostname is now configurable on the nginx config on the frontend.
  • Replaced all occurences of withRouter by useHistory and useParams
  • Added CI/CD support with Travis
  • Auto-deployment of Docker images to Docker Hub
  • Changing the UX related to Summary Mode
  • Added the ability to copy the content of the session in the clipboard, both in Markdown format and Rich Text
  • Added Error Boundaries to improve the user experience if the app crashes
  • Added support for Sentry.io (error logging)
  • Fixed an issue where multiline content was not displayed properly for anyone except the author
  • Fixed an issue where a post couldn't be deleted if it had votes attached to it
  • Issue 56 - Fixed an issue where new users who were not persisted yet couldn't vote (๐Ÿ‘ Thanks @dkistner)

Version 2.1.4

  • ๐Ÿ‡ฉ๐Ÿ‡ช German Translation (๐Ÿ‘ Thanks @PaulBrandt)
  • ๐Ÿ› Bugfix: First post was sometimes not saved on regular sessions

Version 2.1.3

  • IE fix: the previous polyfill didn't quite work with IE9 to IE11.

Version 2.1.2

  • Older browser support (IE11, somewhat works with IE10 and IE9).
  • Adding an "outdated browser" warning
  • Adding a remaining votes counter when using a maximum number of votes rule.
  • Changing how Editable Labels work: they now only fire onChange on blur or Enter, minimizing the amount of traffic over the socket
  • Removing the REACT_APP_DEBUG environment variable (using NODE_ENV instead).
  • Adding a loading spinner while loading the game now that we can't predict which number of columns are going to appear on screen.
  • Making sure index.html is not cached by Nginx on production
  • Removing .map files on production

Version 2.1.1

  • MS Windows support/fixes (๐Ÿ‘ Thanks @srraf).
  • PR-48 - Fixed a word-wrapping issue when we have only one (long) post (๐Ÿ‘ Thanks @manicmaniac).
  • Fixes a possible race-condition issue with "vote" syncing.

Version 2.1.0

  • Adding full customisation of columns and rules:
    • You can now create a board with 1 to 5 columns
    • You can allow a user to vote for his own posts
    • You can allow multiple votes on the same post
    • You can limit the number of up and down votes
    • You can choose to display the name of the author, and the name of the persons who vote
  • Your language selection is now remembered between sessions
  • Various UI fixes:
    • Login modal improvements
    • Editable label improvements
  • Various Docker improvements
  • Upgraded dependencies
  • ๐Ÿ‘ Special thanks to @jesusabp, @zalexki and @jfritz for their inputs and ideas!

Version 2.0.4

  • Upgraded dependencies
  • Allows multi-line posts and comments (use the shift key to add a new line) (๐Ÿ‘ Thanks @andyk314)
  • Re-adding Hot Reload, which now works great with TypeScript and Create-React-App.

Version 2.0.3

  • Upgraded dependencies
  • Fixed an issue with Docker eating too much space with its unlimited log size. Log is now limited to 50mb.

Version 2.0.2

  • Added an "Action" field on each Post: this allows the user to define a list of actions that need doing in the next sprint, and allows displaying this list in the Summary Mode.
  • ๐Ÿ› Bugfix: In certain conditions, some race-condition would store a post with a null session ID (so the post was lost forever).
  • ๐Ÿ› Bugfix: Disabled the Web Worker, as it's not working properly when loading a game directly (and not loading the homepage).

Version 2.0.1

  • Adding support for Postgres migrations
  • Adding created/updated fields on Post and Session
  • ๐Ÿ› Bugfix: Summary mode wasn't ordered by votes anymore. (๐Ÿ‘ Thanks @cindyccook)

Version 2.0.0

  • Complete rewrite
  • TypeScript
  • React Hooks
  • @testing-library/react
  • New component library (MaterialUI)
  • Docker-friendly

Version 1.0.1

  • ๐Ÿ‡ฏ๐Ÿ‡ต Japanese Translation (๐Ÿ‘ Thanks @sat0yu)
  • Simplified the ESLint configuration
  • Introducing Prettier (yarn format)
  • Upgrading to Babel 7

Version 1.0.0

  • React 16
  • Webpack 4 (for previous versions of webpack, see below)
  • Using @bionikspoon/react-toolbox instead of the original react-toolbox, as the project is no longer maintained and doesn't work with React 16.
  • Upgraded all the other dependencies, everything should be up-to-date
  • Improved the home screen

Version 0.10.0

  • Webpack 3 (for Webpack 2, look at version 0.9.0)
  • Converting entire project to 2-space indentation
  • Upgrade other dependencies
  • ๐Ÿ‡ต๐Ÿ‡ฑ Polish Translation (๐Ÿ‘ Thanks @olaf-cichocki)
  • ๐Ÿ‡ฆ๐Ÿ‡ช Arabic Translation (๐Ÿ‘ Thanks @Meshredded)
  • Improved the loading screen

Version 0.9.0

  • Webpack 2 (for Webpack 1, look at version 0.8.1 and older)
  • React 15.5 (which needs the new prop-types module, among other things)
  • React Router 4 (completely different way of doing the routing)
  • Move the structure of the project to a modular structure
  • Upgraded all the other dependencies to the latest versions, except react-toolbox

Version 0.8.1

  • Hotfix (ESLint errors on production build)

Version 0.8.0

  • Using redux-saga-testing to test sagas
  • ๐Ÿ‡น๐Ÿ‡ผ๐Ÿ‡จ๐Ÿ‡ณ Chinese (Traditional and Simplified) Translation (๐Ÿ‘ Thanks @aqutw)
  • Using Yarn
  • Updating dependencies
  • Fixing some Spanish translation mistakes (๐Ÿ‘ Thanks @MrPolymath)
  • ๐Ÿ› Fixed a bug where the Vote buttons would allow a user to vote multiple times (on the UI only)

Version 0.7.0

  • Good test coverage, using Jest
  • ๐Ÿ‡ท๐Ÿ‡บ Russian Translation (๐Ÿ‘ Thanks @vectart)
  • ๐Ÿ‡ช๐Ÿ‡ธ Spanish Translation (๐Ÿ‘ Thanks @andresin87)
  • Replacing PNG flags by SVG/CSS versions
  • Using react-hot-loader 3.0.0 (beta2) for Hot reloading
  • Fixing a few mobile/responsive issues

Version 0.6.1

  • React-toolbox 1.0.0
  • Debugging instructions

Version 0.6.0

  • Added the ability to edit existing posts inline (posts you wrote)
  • Adding a new Invite button to simplify and explain how to invite other people
  • Removing the snackbar
  • Removing ES7 decorators, as they are not standard yet
  • Removing hash on CSS and JS on production (not necessary since we have the version number)

Version 0.5.2

  • ๐Ÿ› Fixed a bug on the anti-spam when if using a proxy (nginx for instance), the wrong ip was used
  • ๐Ÿ› Fixed a bug where the linting would fail if the default configuration was used (๐Ÿ‘ Thanks @veselignome)

Version 0.5.1

  • Full support of ESLint, based on AirBnB rules
  • Adding an anti-spam for SocketIO, because someone is having fun crashing my server (thanks!)

Version 0.5.0

  • Adding the possibility to join a previously joined session quickly (๐Ÿ‘ Thanks @Sonaryr)
  • Performance improvement on title edit (Also thanks to @Sonaryr ๐Ÿ‘)
  • New Logo!
  • Added Favicons

Version 0.4.1

  • Updated the screenshot on the readme
  • package.json version updated properly this time

Version 0.4.0

  • Improved the "Create Session" page, allows a user to create a session with a custom name
  • Ability to edit that session name in real-time (by anyone)
  • Added a "Summary Mode": this gives a summary of a current session, allowing a user to copy-paste the entire content easily
  • New shorter session IDs
  • New look-and-feel (new colours)
  • Using reselect to create memoized selectors
  • Improving performance by using shouldComponentUpdate via a custom base Component
  • Updated to the brand new React 15
  • Improving Windows support by allowing Windows users to use the same commands as *nix users
  • ๐Ÿ‡ณ๐Ÿ‡ฑ Internationalisation: added Dutch to the list of supported languages (๐Ÿ‘ Thanks @Sonaryr)

Version 0.3.0

  • Adding support for more robust databases (NeDB, by default, in process, and MongoDB)
  • Change to the Like / Unlike logic: a user can now only vote once, and not for his own posts
  • Change to the Like / Unlike logic: like and unlikes counts are separated
  • Adding ES7 decorators, more readable than the previous curry-ed functions
  • Better support for Windows
  • ๐Ÿ‡ง๐Ÿ‡ท Internationalisation: added Brazilian Portuguese to the list of supported languages (๐Ÿ‘ Thanks @renancouto)

Version 0.2.0

  • Using redux-saga instead of redux-thunk
  • Persistence: Simple persistence to disk (no database needed)
  • Support for Google Analytics (with precise events monitoring)
  • Ability to logout, and to leave a session
  • Improve the reliability of the clients list (currently connected users)
  • Fix issues when the web fonts can't load (firewall blocking for example)
  • ๐Ÿ‡ฌ๐Ÿ‡ง ๐Ÿ‡ซ๐Ÿ‡ท ๐Ÿ‡ญ๐Ÿ‡บ Internationalisation: support for English, French and Hungarian (๐Ÿ‘ Thanks @iaretiga)

Version 0.1.1

  • Minor visual tweaks
  • Better console logs, server side
  • Big clean up of un-used files and old libs

Version 0.1.0

  • First production version
  • Basic functionalities are there and working
  • Login
  • Creating a session
  • Joining a session
  • Adding new posts
  • Like / Unlike posts
  • Ability to delete our own posts
  • List of connected users
  • No persistence (yet)

Frequently Asked Questions

What if I want to name my session so I can remember easily how to come back to it?

You can actually change the session ID in the URL with anything you like: for example www.retrospected.com/game/hello_world

Try not to take a too common name though, to avoid anyone else finding your session by chance.

Thanks ๐Ÿ‘

Many thanks to the following contributors who helped translating the app:

If you are a native speaker of another language, please don't hesitate to make a pull request to add a translation.

Special thanks to @andresin87 for pointing the flag-icon-css package to me, it replaces the PNG flags in a neater way.

Another special thanks to Browserstack, as they allow me to test this project in other browsers.

Please make your PRs from the develop branch, not master.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].