Giter Site home page Giter Site logo

berkearas / workgroup Goto Github PK

View Code? Open in Web Editor NEW
39.0 3.0 4.0 11.15 MB

Self-Hosted private Social Media-Intranet for Companies.

Home Page: https://workgroup.berkearas.de/

License: MIT License

HTML 0.18% JavaScript 84.78% SCSS 15.03%
javascript social-media social-network enterprise business company self-hosted community workgroup react reactjs intranet social-networks php webapp web website

workgroup's Introduction

Codacy Badge GitHub license GitHub release Github all releases Profile views GitHub contributors



Logo

WorkGroup

⚠️ Warning: WorkGroup is currently in development. Most of the features are not working properly.
I am very happy about every contributor 😁 ⚠️


Self-Hosted private Social Media for Companies
(comming soon) Learn more »

Report Bug · Request Feature

Contents
  1. About The Project
  2. Getting Started
  3. Try the Demo!
  4. Usage
  5. Roadmap
  6. Contributing
  7. License
  8. Contact

About The Project

WorkGroup is an open source, selfhosted private social-media platform for companies.

Here's why:

  • Good networking is very important in companies.
  • Self hosted platforms are very important for companies with critical information.

Features:

  • Communicate through your company!
    • Videocalls
    • Voicecalls
    • Textchat
    • Groupchats
  • Socialize with your coworkers!
    • Use the company-wide feed to share informations across the whole company
    • Create group-feeds for different departments
    • Create polls, upload photos, videos and other files
    • Create events and notify users

Built With

Try the Demo

Sign Up at demo1.workgroup.berkearas.de

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

  • npm
    npm install npm@latest -g

Installation

  1. Clone the repo
    git clone https://github.com/BerkeAras/WorkGroup.git
  2. Install NPM packages
    npm install
  3. Enter your configuration in .env (Clone the API from WorkGroup-API)
    REACT_APP_API_URL=http://your-api-url.com

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Berke Aras - @brk_ars - [email protected]

Project Link: https://github.com/BerkeAras/WorkGroup

workgroup's People

Contributors

berkearas avatar codacy-badger avatar kevsrepos avatar zikowang 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

Watchers

 avatar  avatar  avatar

workgroup's Issues

[BUG]: Post-Time only shows current time

Expected Behavior

Post-Time should show correct time

Actual Behavior

Post-Time shows current time

Steps to Reproduce the Problem

  1. Create Post
  2. See Post-Time

Critical Bug?

  • Yes
  • No

More Information

N/A

[BUG]: Private Group Posts are visible company-wide.

Expected Behavior

Private Group Posts should not be visible for non-members.

Actual Behavior

Private Group Posts are visible company-wide.

Steps to Reproduce the Problem

  1. Create private group on Account A
  2. LogIn to WorkGroup using Account B (do not join group)
  3. See post

Critical Bug?

  • Yes
  • No

More Information

N/A

[FEAT]: Improve Login/Register/Reset Screen

Feature Request

Describe the Feature Request
Improve the Login/Register or Reset Screen. The current screen is too white and too empty.

Describe Preferred Solution
Maybe a big background-image?

Describe Alternatives
N/A

Related Code
N/A

Additional Context

N/A

[BUG]: User-Component does not reload after URL-Change through search

Expected Behavior

After changing the URL (by searching for a user) the User-Component should reload and fetch the information of the new user.

Actual Behavior

After changing the URL nothing happens.

Steps to Reproduce the Problem

  1. Go to your Account
  2. In the search look for a user (not your user)
  3. See issue

Critical Bug?

  • Yes
  • No

More Information

N/A

[FEAT]: Add comment feature

Feature Request

Describe the Feature Request

Comment feature for posts,

Describe Preferred Solution

N/A

Describe Alternatives

N/A

Related Code

N/A

Additional Context

N/A

+++ Future goals +++

Future goals

Features:

  • My Account page
  • App Settings page
  • Events page
  • Topics page
  • Groups page
  • File/Image Upload in posts
  • Top-Comment function
  • Notifications
  • Block users
  • Report posts
  • Report users

[BUG]: Comments are visible for all posts

Expected Behavior

Comments should be visible for the corresponding post

Actual Behavior

Comments are visible for all posts

Steps to Reproduce the Problem

  1. Create 2 Posts
  2. Write 1 Comment
  3. See both posts

Critical Bug?

  • Yes
  • No

More Information

N/A

[BUG]: Cookie-Banner appears every time on reload on SignIn/SignUp-Page

Expected Behavior

The Cookie-Banner should save the decision of the user and should hide the cookie-banner if the user already choose an option.

Actual Behavior

On every reload on SignIn/SignUp-Page the localStorage-Item cookies_accepted gets deleted.

Steps to Reproduce the Problem

  1. Go to the SignIn/SignUp-Page
  2. Accept Cookies
  3. Reload

Critical Bug?

  • Yes
  • No

More Information

N/A

[BUG]: Routing Issues

Expected Behavior

Routing should not show login when logged in.

Actual Behavior

React-Router displays login-screen like for a second, and then redirects to the App. Routing to /app/user/:email does not work everytime.

Steps to Reproduce the Problem

  1. Just navigate

Critical Bug?

  • Yes
  • No

More Information

N/A

[BUG]: Emojis are replaced by question marks in the API

Expected Behavior

Emojis should be visible in Post, Comments, ...

Actual Behavior

Emojis are replaced by question marks in the API

Steps to Reproduce the Problem

  1. Create Post with Emoji
  2. See Post

Critical Bug?

  • Yes
  • No

More Information

N/A

[BUG]: Improve Search-Algorithm

Expected Behavior

Searching for "John Doe" or "Doe John" should return the same result.

Actual Behavior

The algorithm distinguishes the order of words.

Steps to Reproduce the Problem

  1. Create new User "John Doe"
  2. Search for "John Doe"
  3. Search for "Doe John"

Critical Bug?

  • Yes
  • No

More Information

N/A

[FEAT]: Add E-Mail confirmation on SignUp

Feature Request

Describe the Feature Request
Add E-Mail Confirmations on SignUp to prevent fake-users.

Describe Preferred Solution
N/A

Describe Alternatives
N/A

Related Code
N/A

Additional Context
N/A

[BUG]: Too thin department-chip in search results

Expected Behavior

The department-chip in the search results should be a little bit bolder

Actual Behavior

The font-weight is at the moment at 100 (way too thin)

Steps to Reproduce the Problem

  1. Search for a user with department (e. g. John Doe)

Critical Bug?

  • Yes
  • No

More Information

N/A

Tutorial

Hey, can you make an tutorial how to setup workgroup or could you explain how to develope it? I want to help you. Where is the .sql file? I want to upload workgroup on a real shared hosting server. What do I have to do? How to setup the database? ....
Thank you

[FEAT]: Add Password-Change Feature

Feature Request

Describe the Feature Request
Users cannot change their passwords.

Describe Preferred Solution
A modal to change the password (current pass; new pass; repeat new pass)

Describe Alternatives
The Password Forgotten-Button does the same.

Related Code
N/A

Additional Context
N/A

[BUG]: Display an Error when upload-file is too big

Expected Behavior

An Alert should be displayed when the uploaded file is too big.

Actual Behavior

No error is displayed.

Steps to Reproduce the Problem

  1. Upload too big file
  2. See error

Critical Bug?

  • Yes
  • No

More Information

N/A

[BUG]: Heart-Icon from Like-Button disappears randomly

Expected Behavior

After dislinking/liking the heart-icon should only change color.

Actual Behavior

After dislinking/liking the heart-icon disappears randomly.

Steps to Reproduce the Problem

  1. N/A

Critical Bug?

  • Yes
  • No

More Information

[FEAT]: Show version-number in left sidebar

Feature Request

Describe the Feature Request
Show the version-number in the left sidebar.

Describe Preferred Solution
Importing package.json and returning version-number would be a solution.

Describe Alternatives
N/A

Related Code

import packageJson from '../package.json';
packageJson.version;

Additional Context
N/A

[BUG]: Search does not work properly

Expected Behavior

Search for something, see result.

Actual Behavior

Error: SQLSTATE[HY000]: General error: 1191 Can't find FULLTEXT index matching the column list (SQL: select `users`.`id`, `users`.`email`, `users`.`name`, `user_information`.`user_department` from `users` left join `user_information` on `users`.`id` = `user_information`.`user_id` where `users`.`email` like %Test% or `users`.`email` = SOUNDS LIKE or `users`.`name` like %Test% or `users`.`name` = SOUNDS LIKE or MATCH (users.name) AGAINST (\"+Test\" IN BOOLEAN MODE) or `user_information`.`user_department` like %Test% or `user_information`.`user_department` = SOUNDS LIKE or MATCH (user_information.user_department) AGAINST (\"+Test\" IN BOOLEAN MODE) or `users`.`id` = Test limit 4)

Steps to Reproduce the Problem

  1. Search for something
  2. See issue

Critical Bug?

  • Yes
  • No

More Information

https://github.com/BerkeAras/WorkGroup-API/blob/62cbda68304baf5e742be04bd29b3cd5c147dee6/app/Http/Controllers/SearchController.php#L25-L38

[BUG]: SignUp does not fill in created_at/updated_at

Expected Behavior

created_at/updated_at should be filled with CURRENT_TIMESTAMP.

Actual Behavior

SignUp does not fill in created_at/updated_at. Value is NULL.

Steps to Reproduce the Problem

  1. Sign Up
  2. See database

Critical Bug?

  • Yes
  • No

More Information

N/A

[BUG]: Create Post Modal-Button does not focus the textarea

Expected Behavior

A click on "Share something about your thoughts…" should open the modal and focus the textarea in the modal so that the user can just begin writing.

Actual Behavior

It just opens the modal

Steps to Reproduce the Problem

  1. click on "Share something about your thoughts…"
  2. see issue

Critical Bug?

  • Yes
  • No

More Information

N/A

+++ Refactor Class-Components to functional components +++

  • src/App.jsx:
  • src/components/_App_CommentSection/index.jsx:
  • src/components/_App_CreatePostForm/index.jsx:
  • src/components/_App_PostsList/index.jsx:
  • src/components/_User_FirstLogin/index.jsx:
  • src/components/Content/index.jsx:
  • src/components/Header/index.jsx:
  • src/components/HeaderDropdown/index.jsx:
  • src/components/SidebarLeft/index.jsx:
  • src/components/SidebarPopularItems/index.jsx:
  • src/components/SidebarRight/index.jsx:
  • src/views/App/index.jsx:
  • src/views/auth/LogOut/index.jsx:
  • src/views/auth/PasswordReset/index.jsx:
  • src/views/auth/SignUp/index.jsx:

[BUG]: Image-Uploads at FirstLogin Component are not working

Expected Behavior

Upload images by selecting file and saving

Actual Behavior

Error: 'CORS Error'. When adding mode: 'no-cors' to fetch, you'll get an Error 500.

Steps to Reproduce the Problem

  1. Upload image
  2. See issue

Critical Bug?

  • Yes
  • No

More Information

N/A

[BUG]: Prevent focus on SearchField-Results Container

Expected Behavior

Prevent focus on SearchField-Results Container

Actual Behavior

SearchField-Results Container is focusable

Steps to Reproduce the Problem

  1. Focus to Search Input
  2. Press "Tab" on the Keyboard
  3. See Issue

Critical Bug?

  • Yes
  • No

More Information

N/A

[FEAT]: Add KnowledgeBase-Items to search

Feature Request

Describe the Feature Request
Add KnowledgeBase Folders and Files to search results (if the user has the permission to read)

Describe Preferred Solution
N/A

Describe Alternatives

Related Code

Additional Context

[BUG]: Store Cookie Choice only if user is logged in

Expected Behavior

Store Cookie Choice only if user is logged in to prevent error 500

Actual Behavior

/api/user/storeCookieChoice returns an error 500: Wrong number of segments

Steps to Reproduce the Problem

  1. Sign out
  2. Accept cookies
  3. See issue

Critical Bug?

  • Yes
  • No

More Information

const storeCookieChoice = () => {
var header = new Headers()
header.append('Authorization', 'Bearer ' + localStorage.getItem('token'))
header.append('Content-Type', 'application/json')
const requestOptions = {
method: 'POST',
headers: header,
body: JSON.stringify({
cookie_choice: localStorage.getItem('cookies_accepted'),
}),
}
// eslint-disable-next-line no-undef
fetch(process.env.REACT_APP_API_URL + '/api/user/storeCookieChoice', requestOptions)
.then((response) => response.json())
.then((data) => {
console.log(data)
})
}

[FEAT]: Add cookie banner

Feature Request

Describe the Feature Request
Cookie Banners are required if we want to use Google Analytics or other tracking software

Describe Preferred Solution
N/A

Describe Alternatives
N/A

Related Code
N/A

Additional Context
N/A

[BUG]: Bad accessibility for some elements

Expected Behavior

All Clickable Elements should be usable by keyboard too. User should be able to navigate through search-results by using the arrow-keys on their keyboards.

Actual Behavior

Some of the clickable elements (like the dropdown at the top right corner) are not usable with the keyboard. Using an <a>-Tag instead of <div>-Tag could fix the issue.

Steps to Reproduce the Problem

  1. Click the dropdown at the top right corner with the mouse – works
  2. Click it using your keyboard (focus + enter) – does not work

Critical Bug?

  • Yes
  • No

More Information

N/A

[FEAT]: Add Search-Field

Feature Request

Describe the Feature Request
Create a Search-Field

Describe Preferred Solution
A (maybe expanding) search-field in the navigation-bar (side-by-side with the logo)

Describe Alternatives
N/A

Related Code
N/A

Additional Context
N/A

[FEAT]: Remember Cookie-Choice of the user

Feature Request

Describe the Feature Request
Remember the Cookie-Choice of registered users.

Describe Preferred Solution
Store the cookie-choice in the Database

Describe Alternatives
N/A

Related Code

const acceptCookies = (e) => {
setCookiesAccepted(true)
localStorage.setItem('cookies_accepted', 'true')
}
const initializeTracking = (location) => {
if (process.env.REACT_APP_USE_GOOGLE_ANALYTICS == 'true') {
ReactGA.initialize(process.env.REACT_APP_GOOGLE_ANALYTICS, {
debug: false,
})
ReactGA.pageview(window.location.pathname)
}
}
const saveCookieSettings = () => {
if (analyticsCookiesChecked) {
// Analytics cookies are checked
initializeTracking(location)
localStorage.setItem('cookies_accepted', 'true')
} else {
// Remove cookies
document.cookie = '_ga=; Path=/; Domain=.example.com; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'
document.cookie = '_gat=; Path=/; Domain=.example.com; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'
document.cookie = '_gid=; Path=/; Domain=.example.com; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'
// Remove G-Analytics
if (document.querySelector('script[src="https://www.google-analytics.com/analytics.js"]')) {
document.querySelector('script[src="https://www.google-analytics.com/analytics.js"]').remove()
}
localStorage.removeItem('cookies_accepted')
localStorage.setItem('cookies_accepted', 'technical')
}
setCookiesAccepted(true)
setShowCookieSettingsModal(false)
}

Additional Context

N/A

[FEAT]: Add show-more button to long posts

Feature Request

Describe the Feature Request
Add show-more button to long posts

Describe Preferred Solution
Truncate text

Describe Alternatives
N/A

Related Code
N/A

Additional Context
N/A

[BUG]: Typo in Login and Register

Expected Behavior

The Word E-Mail should not be spelled "E - Mail".

Actual Behavior

Steps to Reproduce the Problem

  1. See login/register

Critical Bug?

  • Yes
  • No

More Information

[FEAT]: Add image compression for avatars

Feature Request

Describe the Feature Request

Add image compression for avatar-images (serverside)

Describe Preferred Solution

N/A

Describe Alternatives

N/A

Related Code

N/A

Additional Context

N/A

[FEAT]: Add focus-animation (scale)

Feature Request

Describe the Feature Request
Add focus-animation for buttons/menu-items.

Describe Preferred Solution
Scale-Animation

Describe Alternatives
N/A

Related Code
Example:

transition: all .2s;
&:focus {
     transform: scale(.98);
}

Additional Context
N/A

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.