GithubHelp home page GithubHelp logo

marcinadd / projecty-web Goto Github PK

View Code? Open in Web Editor NEW
73.0 8.0 74.0 1.28 MB

Project management software based on spring

License: GNU General Public License v3.0

Java 99.82% Dockerfile 0.07% Shell 0.02% HTML 0.09%

projecty-web's Introduction

Projecty Web v2.0

Hits

Projecty is a project management app based on spring.

Motivation

My main objective is to create a free and open-source privacy project management application for everyone. I know that project data are really sensitive, so you feel better when you are the owner of them. And for, those who do not have a server, Projecty will be available on the hosted server completely for free (in the future).

Features

Tasks

  • Tasks management (mark tasks as To do, In progress, Done)
  • Assign tasks to users
  • Task importance levels
  • Group tasks into projects

Projects

  • Project user management
  • Project roles (Admin/User)

Teams

  • Team user management
  • Team Roles (Manager/Member)

Chat

  • Real time chat via WebSockets

Messages

  • Send messages to users
  • Reply to messages
  • Send messages with multiple attachments

Notifications

  • Notify user about important activities
  • Optionally send E-mail notifications

Dashboard

  • Get assigned tasks for current user

Users

  • Avatars
  • Username completion
  • Personalize notifications
  • Block adding to new projects/teams

…and more

Note

Projecty v2.0 is compatible only with Angular front-end so far. You cannot use this version with Android or Vue.js clients due to differences in user authentication (and other minor things).
Projecty Angular

Getting Started

Via Docker

  1. After changes run ./build_image.sh in a project root directory to build application image.
  2. Rundocker-compose up in a project root directory.

Data is stored in a volume db-data.

Set up project manually

You can use development profile to set up project manually.

  1. Switch profile to development in application.properties:
    spring.profiles.active=development
    

Datasource and Keycloak configuration

Check configuration and edit if you need.

  1. Set database credentials in application-development.properties:
    spring.datasource.url=jdbc:mysql://localhost:3306/projecty
    spring.datasource.username=root
    spring.datasource.password=password
    
  2. Set Keycloak server url:
    keycloak.auth-server-url=http://localhost:8081/auth
    

Prerequisites

  • JRE ≥ 11
  • Docker or (MySQL 8.0 compatible database and Keycloak 10.0.0 server)

Contributing

Your contribution is welcome. No matter who you are, you can help anyway. The most helpful is help with coding but graphic designers are also needed. If you are not a developer or graphic designer don't worry, you can help with translations, post on a blog, make a video, or tell your friend about Projecty. Your contribution will be appreciated.

License

Projecty is licensed under GNU GPL v3.0 http://www.gnu.org/licenses/gpl-3.0.html

projecty-web's People

Contributors

allanmoso avatar anirban-a avatar ashusharmatech avatar ashutoshsharma31 avatar atulsingh-emyre avatar didaratsimba avatar fokion avatar himanshugoyal1065 avatar jdevfullstack avatar kacperkoza avatar marcinadd avatar selvakumar-invicara avatar shourav9884 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

projecty-web's Issues

Add notifications

User should get notifications; for example „You have been added to the project XYZ”.
Sample suggestion:

  • Create Notification entity with User, timestamp and message code (for internationalisation)
  • Create NotificationRepository
  • Create NotificationController with getAllNotifications(), deleteAllNotifications()…

gradle tasks jar

No signature of method: org.gradle.api.internal.artifacts.ivyservice.ivyresolve.strategy.DefaultVersionComparator.asStringComparator() is applicable for argument types: () values: []
Possible solutions: asVersionComparator()

Create a Website for this Repo

Hi there.

Is there a website for this repo?

Because if you don't have, well, this repo can simply be turned into a website right away. Others will discover this project in that website.

Steps:

  1. Go to Settings and look for GitHub Pages, scroll down. That's almost at the bottom.

  2. You will see there: Branch:none, so you should change that to master because you have a README.md file in the master repo. This will be your page. Click Save first.

  3. Then click Theme, you select a predefined theme of your site.

  4. Visit your site now! The URL will be https://marcinadd.github.io/projecty-web.

If you were amazed by that, simply read the documentation about GitHub Pages.

Update the testing capabilities on JUnit by having testcontainers

Description

Add the test containers that will setup and tear down a database on each test. This will make the testing more reliable as it will use an actual database and not mocking.

Requirements

  • Explore and add the test containers dependency in the project
  • Convert at least one of the tests to prove the usefulness

Invitations

Add to team and project should have a request form.
For example:
"User XYZ want to add you to the team/project ABC. Do you want to join to team/project ABC?"

Message Validator

  • Add MessageValidator

  • Validate message on send (add validation to sendMessage() in MessageService)

Giving out some sample API requests to test/understand the current working of the project.

Hi,
I was able to set up the projecty server but I'm still not sure about the complete functionality of the app and what are the different use cases and what are the endpoints I should hit along with what data I should pass.

I suggest adding some API requests as a sample inside the read.me file to explain the feature along with the request and response expected for that feature.

I know one can achieve this by looking at the files and doing some hit and trial, but why not make life easier? :)

Database Error

Hello,

Nice to meet you all, and hope you are well.

I have followed the docker steps to get the development build up and running however I am coming across some issues with the MySQL Database. I successfully signed-up as a user, however when I go to sign-in I get the following error message in my docker terminal window:

image

When I explore mySQL database using the oracle "MySQL Workbench" software, I can't see any issues with the DB setup:
image

I am thinking that when I run the docker command "docker-compose up", the database is not found by docker. When I run the docker command with the database already started up, I get this error message:
image

Is my docker session, and mySQL database not allowed to be using the same port?

Kindest Regards,
Joseph

Add Flyway to track the sql changes

Problem

At the moment the startup script adds the SQL file in the initialisation scripts of the MySQL. Update the project to support a flyway dependency and have the ability to migrate the schema in a trackable manner.

Requirements

  • Configure Flyway

Making the development environment ready to use for developers.

I recently checked out the rest2.0 branch. Setting up the development environment took me some time and we should eradicate this issue.
The following problems which I saw:

  1. There is a missing dialect for MySQL.
  2. I see this typo -
    ; logging.level.org.springframework=DEBUG

Can you confirm are these really an issue or it was done intentionally?

I have worked on eradicating them and can create a PR if someone approves it.

Add Domain

  • In domain users cannot interact with other users outside domain

  • Domain admin can bulk add users, remove them, set them admins; create in-domain teams

Settings

Improve settings for example:

  • Add switch to turn off adding user to project/team (users can't add you to a project or team)
  • Enable/disable notifications
  • Enable/disable chat

Refactor RestController Responses from POJO to Springs ResponseEntity

Currently the response of a request returns a POJO. You can do this in a more flexible way with public ResponseEntity<MyType> and return ResponseEntitiy.of(object).

ResponseEntity<T> represents the entire HTTP response. Besides the body, its API allows you to set headers and a status code to the response.

Returning just a bean is fine but doesn't give you much flexibility: In the future, if you need to add a header to the response or modify the status code, for example, you need to change the method return type.

https://stackoverflow.com/a/49673748

Add profiles

Add profiles for production and development with separate configurations.

Add docker-compose

Setting up the environment manually may be a problem. That's why it's a good idea to introduce Docker into the project.

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.