Coder Social home page Coder Social logo

rocketchat / rc4github Goto Github PK

View Code? Open in Web Editor NEW
4.0 5.0 8.0 4.12 MB

One Rocket.Chat Team for every Github repository.

License: MIT License

Dockerfile 0.39% HTML 1.37% CSS 12.32% JavaScript 85.91%
community community-project opensource community-management community-building jamstack node nodejs

rc4github's Introduction

RC4Git

The easiest way to collaborate over any Github / Gitlab hosted projects.

rc4github's People

Contributors

dhruvjain99 avatar murtaza98 avatar ronlek avatar sing-li avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

rc4github's Issues

Re-design Home screen layout for unsigned users

image

  1. Add links to the most current Github Release Note for the project
  2. Make the latest release number (ie 3.11.0) of the project prominent and one-click link
  3. Show the stats on the front i.e. number of members on rc4git, number of users online, number of channels created, number of communities created dynamically.

Slow Channel Switching

When a user switches between channels, the client-side unmounts the iframe for the current channel and mounts a new iframe with a new URL path for the new channel. This results in re-rendering the whole iframe component and its content leading to slow loading of the channel and repeated network calls to the Rocket chat server.
The time to load worsens when using RC4GIT on the network rather than local.

Screencast.from.25-02-21.02.02.18.PM.IST.mp4

Ideally, the switch must be instant without the loader.

Logout Failure Issue in iframe after logout from rc4git

When a user logins for the first time, iframe login works fine, but if the user logs out and then try to login immediately then the iframe login fails and would require the user to logout again to work.
In short for every login after one logout, it requires the user to logout and then login again.

Screencast.from.25-02-21.01.55.37.PM.IST.mp4

Iframe logout from client side solves this issue.

Alert for unread messages

There are no visible differences when messages are yet to be read.

image

Indication like this can timely help the user to avoid missing out on any important message.

Iframe UI Leaks

When Clicking on the header control buttons or the user profile, the embedded layout breaks to the normal layout.

Screencast.from.25-02-21.02.10.56.PM.IST.mp4

[IMPROVE] Replace GitHub OAuth Apps with GitHub Apps

Github OAuth apps don't provide a more fine-grained approach over permissions. For example, there is no read-only scope to read private repositories. Moreover, accessing collaborators requires a write access to the repositories.

For this reason we plan on migrating to GitHub Apps. There would be 4 GitHub Apps for the following purposes:

  1. Basic user auth with No access for all permissions. ( This would also allow read-only access to public repositories.)
  2. Private repository read-only access.
  3. Webhooks read and write access.
  4. Collaborator read-only access.

Realize the data bridge

Currently in the "Demo Mode", there are three pieces of data displayed:

  • total users
  • online users
  • messages sent

And these numbers are magic number constants.

It would be a good incremental step to realize these numbers by:

  1. accepting the URL of a Rocket.Chat server to be specified
  2. accepting entry of the credentials for REST API against the Rocket.Chat server in (1)
  3. make the appropriate REST API calls and obtain the actual up to date counts from the server
  4. display them in the "Demo Mode"
  5. keep this a regular update, on a "user specified interval" - default to 30 minutes

[IMPROVE] Modify naming convention of channels on RC server

In the future, we plan on making communities have custom names instead of naming them corresponding to the repository associated with them as we now do. For this we need to change the naming convention of communities on the RocketChat server.

In the updated naming convention we plan on appending the user/org name to channel names instead of prepending them as we do currently.

For example, instead of RonLek_RC4Community, the communities would be renamed on the RC server to RC4Community_RonLek.

This step would:

  1. Increase ease of renaming after community creation.
  2. Enable us to append other suffixes. For example, for non-repo linked communities RC4Community_RonLek_Other.

[IMPROVE] Remove communities step for channel creation

To simplify channel creation as per the current use case creation of communities should not be required to create channels. Each channel should internally be linked either to the username or the org to which the repo corresponding to the channel belongs.

Also, since community creation is no longer needed currently we need to revert back #51. In the future communities would be needed when custom naming of channels is introduced.

Further from this point - channels would be renamed as communities. These would appear under their respective top-levels on the sidebar. Linking of each community to the repository would be optional in the future. For this we need to set a custom field for each community so that we can distinguish communities linked to repositories (and which repositories) from those that aren't.

Now, in the create community dialog instead of having a Select Community select, we intend to segregate repositories by their top-levels in the drop down itself.

[IMPROVE] Show Config Webhook Button Selectively

Currently the config webhook button is shown all the time when the activity pane is visible. This should be changed to following:

  1. Show if user logged in and owner of repo corresponding to the channel.
  2. Don't show if user in anonymous mode.

[IMPROVE] Create a user community on login

On signing up on RC4Git every user would create a community to create channels within it.

Creating a community for the user by default (that is a community corresponding to their GitHub username) would enable ease of access to directly create a channel thereby reducing the number of steps in the flow to create a channel for a newly signed up user.

This would also allow us to place a direct "Create Channel" button on /home thereby improving the user-experience for a new user.

[FIX] Handling Error With Proper UI

Current behavior

When creating an existing room, the alert gives a message stating “Error Creating Room”. This type of vague error may confuse the user, as it doesn’t display the exact reason.

image

Expected behavior

Adding systematic error control with specific alerts would help the User experience beyond imagination. I would study each case of exception that may befall while creating the rooms and prepare custom alerts for each of them.

[FEATURE] Repo Info Tab for channels

A Repo Info tab for each channel linked to a repository is needed. The Repo Info tab would show information pertaining to that particular repository like total PRs, issues, watchers, stars and repository description.

Incorrect file name being imported for constants-example.js file

Hey, this is my first issue.

I found that in the file client/src/components/Login/index.js, the line to import 'githubClientID' from 'constants.js' file is: import { githubClientID } from "./../../utils/constants";.

However there is no 'constants.js' file in the utils folder. It should be replaced with 'constants-example.js' instead.
This is the case for other files in the 'components' folder as well.

This is causing problems in running the docker image file as well on my local computer.

[IMPROVE] Insert a Create Channel button on home

A Create Channel button on the home page shown after login should be placed. This would allow users to create a channel directly (since a username community would already be created on sign up) and sort of provide with a flow towards starting to use RC4Git.

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.