Giter Club home page Giter Club logo

portalizer.org's Introduction

Portalizer

The project is an open-source Kanban-style list application and aims to be used for sprint retrospective, activity planning and task tracking.

You can check out a live demo here: https://portalizer.org/

Portalizer Screenshots

Login page Boards page
Board details page Drag and drop cards and columns
Search boards Create custom board

Tech Stack

Local Installation:

Docker Hub

docker pull andreisasu/portalizer:latest

docker run -e ADMIN_PASS=<admin_password> <container_id>

Databases

By default, the application will use an embedded H2 in memory database.

MySQL is also available with the mysql spring profile.

You might need a mysql container up and running: https://github.com/AndreiSasu/portalizer.org/tree/master/portalizer#using-docker-to-simplify-development-optional

docker run -e _JAVA_OPTIONS="-Dspring.profiles.active=prod,mysql" -e ADMIN_PASS=<admin_password> <container_id>

You can override the mysql user / password by specifying: -Dspring.datasource.user=<username> -Dspring.datasource.password=<password> and the url by specifying -Dspring.datasource.url=jdbc:mysql://<hostname>:<port>/<schema>?option1=value1&option2=value2 if you need to.

Sample Data

If you want to have some sample data populated (boards, cards), use the demo spring profile

Ex:

docker run -e _JAVA_OPTIONS="-Dspring.profiles.active=prod,h2,demo" -e ADMIN_PASS=<admin_password> <container_id>

The sample data has been generated using Java Faker

API Docs

API documentation is available via Swagger, enable it via the swagger spring profile.

Authentication

By default, all boards are publicly accessible. You can require authentication via the enable-auth spring profile.

Social login (OAuth2)

You can enable Google and / or Github login by using google-login and github-login profiles.

You will need to specify the following environment variables on startup:

-e GITHUB_CLIENT_ID=<your_github_client_id>
-e GITHUB_CLIENT_SECRET=<your_github_client_secret>
-e GOOGLE_CLIENT_ID=<your_google_client_id>
-e GOOGLE_CLIENT_SECRET=<your_google_client_secret>

Please see Github and Google developer documentation on how to create an OAuth2 app to you account to obtain the above.

https://developer.github.com/apps/building-oauth-apps/creating-an-oauth-app/

https://console.developers.google.com/apis/credentials

Changelog

1.0.3-RELEASE

Maintenance release, upgrading Angular 8 -> 9 and Java 8 -> 11

1.0.2-RELEASE

Added Google login and Github login support. (OAuth2)

Boards now also have an owner, which is the user that created them, if logged in.

1.0.1-RELEASE

Improved boards page with sorting, location URL for bookmarking and added list view.

1.0.0-RELEASE

Initial version

  • Support for creating sprint retrospective boards from predefined templates:

    • Mad, Sad, Glad

      Mad, Sad, Glad is a popular retrospective technique that encourages team members to think about their emotions. How does the team feel after the last sprint? Mad, Sad, Glad is simple to learn while being easy to explain and run.

    • What Went Well, What To Improve, Action Items

      Focuses on the strengths and weaknesses of the team based on the previous sprint.

    • KALM: Keep, Add, Less, More

      KALM (Keep, Add, More, less) is a retrospective activity that fosters the conversation to the current activities and the perceived value. It helps team members to understand each other perceived value on such practices.

    • Start, Stop, Continue

      Start, Stop, Continue is an action-oriented retrospective technique that encourages participants to come up with practical ideas for team-based improvement.

    • 4Ls: Liked, Learned, Lacked, Longed For

      4Ls stands for Liked Learned Lacked Longed For. The 4Ls technique is a brainstorming technique for collecting feedback on a recently completed project or piece of work. This retrospective highlight the positive (liked & learned) as well as the negative (lacked & longed for). The team have to think mostly from a factual (what happened) perspective, rather than an emotional perspective.

    • Lean Coffee: To Discuss, Discussing, Discussed

      From the Lean Coffee website, we have that β€œLean Coffee is a structured, but agenda-less meeting. Participants gather, build an agenda, and begin talking. Conversations are directed and productive because the agenda for the meeting was democratically generated.”

    • DAKI: Drop, Add, Keep, Improve

      The DAKI (or Drop Add Keep Improve) retrospective activity is suitable to use after several sprints working with the same team. As your team members are experimenting with different processes, it helps cull out non-value things, keep what is working, and improve by brainstorming on new ways to work.

    • Starfish: Keep Doing - Less Of - More Of - Stop Doing - Start Doing

      Starfish is a great data gathering activity to foster the thinking around practices and the value the team get from it. It helps team members to understand each other perceived value on such practices.

  • Support for creating empty boards

  • Support for adding / removing board columns

  • Drag and drop support for cards and board columns

  • Search boards by Name and Description.

API Diagram:

REST endpoints and DTOs full size version.

Generated using Swagger to UML

TODO:

  • WebSocket support to broadcast all board/card events to connected users.
  • Add voting and comment system support for cards.
  • Add image preview and file attachment support for cards.
  • Add private boards and invitation system.
  • Enable user defined board templates to be saved and reused.
  • LDAP / AD integration.

License and Copyright

Copyright (c) 2020 Andrei Sasu

GNU General Public License V3

portalizer.org's People

Contributors

andreisasu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.