GithubHelp home page GithubHelp logo

rocketchat / gsoc-community-hub Goto Github PK

View Code? Open in Web Editor NEW
10.0 5.0 17.0 712 KB

Ready-to-run hub to engage and extend your Google Summer of Code Community

License: MIT License

JavaScript 78.62% CSS 18.06% Shell 1.63% SCSS 1.68%
community community-project component-architecture full-stack gsoc javscript nextjs

gsoc-community-hub's Introduction

GSoC-Community-Hub

Ready-to-run hub to engage and extend your Google Summer of Code Community

Fast dev environment setup

git clone https://github.com/rocketchat/RC4Community
cd RC4Community
sh startdevenv.sh

Google Summer of Code'23 Synopsis and Proof of Work

You can find the entire research and work of the GSoC'23 project here

gsoc-community-hub's People

Contributors

abhinavkrin avatar dhruvjain99 avatar dnouv avatar palanikannan1437 avatar sing-li avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

gsoc-community-hub's Issues

[TO-DO] Middleware HQ open source repository "heros" component integration

Create a component to display Middleware HQ open source contributors stats in our own style - instances of it should be used to display "up-to-build-time hero statistics" for the following projects that are part of our ecosystem

  • this project
  • EmbeddedChat
  • RC4Community
  • RC4Conferences
  • Github App
  • Poll App
  • App construction Demo App

[TODO] Search component zero dot one

With this hub (and most RC4Community based projects) there exists a large volume of server-side data that is extracted/processed during build time; but are obfuscated, compressed, encoded, encrypted, and otherwise mangled for performance optimized presentation during runtime.

The idea of this component is to allow free text search throughout this volume of data - across ALL components that are deployed as part of the hub/site. Note that this data is inaccessible during runtime due to optimization.

The component must allow the community builder to add indexing tags to such data that will be processed during build time --- hence the component must be the last-to-build.

<h1>Idea: <i1>Google Summer of Code Community Hub</i1></h1>

The component will insert into the build pipeline something that will:

  • index ALL the tagged information across ALL components sitewide
  • compresses/package the index depending on the client-side free-text-search technology used
  • bundle the artifact consistent with NextJS-build for client side consumption
  • inject the artifact and access hooks

Again. This component will show off the finesse of full stack components and further differentiate them from today's available "components".

[TODO] GSoC info pages (MD/RSS Scrape and Relocation) component

Currently an organization's How to Apply and Ideas List pages can be hosted on a multitude of diverse servers or SaaS services.

This component will make it more convenient for the community members to access these pages by bringing the pages (updated at build-time sync intervals) to the hub.

Architecturally, the component must scrape the information from the diverse sources (including markdown/markup) during build time, apply localized styling and fittings, and then manifest them as client side resolvable paths/resources

The UI/UX can be just a client-side page, or it can back a complex component - such as the current carousel component - fulfilling our full-stack component framework promise

Update and Document Environment Variable Configuration

The comments explain the purpose of the environment variables and the fact that they can be overridden by local configuration in .env.local.

Existing variables like NEXT_PUBLIC_DISCOURSE_HOST, DISCOURSE_HOST, and GSOC_LEADERBOARD_BASE_URL remain unchanged.

A comment is included to indicate where you can add new custom environment variables and specify their values. You can follow the same pattern to add new variables if needed.

Remember to replace 'new_variable_value' with the actual value you want to assign to a new variable.

code:-

Environment Variables Configuration

The following environment variables are defined here to provide default values and support certain features out of the box. Please note that these variables can be overridden by values defined in a local configuration file, .env.local.

For more information on environment variables in Next.js, refer to: https://nextjs.org/docs/basic-features/environment-variables#default-environment-variables

Publicly Accessible Discourse Host URLs

These URLs are used as defaults for Discourse host configurations.

NEXT_PUBLIC_DISCOURSE_HOST='https://forums.rocket.chat'
DISCOURSE_HOST='https://forums.rocket.chat'

GSOC Leaderboard Base URL

This variable specifies the base URL for the GSOC (Google Summer of Code) leaderboard.

GSOC_LEADERBOARD_BASE_URL='https://gsoc.rocket.chat'

Add your custom environment variables below (if needed):

NEW_VARIABLE_NAME='new_variable_value'

[TO-DO] Refactor real-time counter components

The current real-time counter component works well. However we want to showcase a higher level of componentization for our community builder.

Two areas need to be addressed with a re-factor:

  1. multiple instances - allowing community builders to use multiple instances of this component on a page (5 or 10 instances)
  2. higher level of component features bundling - into a more functional component with less configuration / parameterization at the page level

For 2 - we'd like to refactor it into two components - each one incorporating MULTIPLE COUNTERS:

a) users-messages-online counters all bundled into a server stats counters component (one that can be easily multiple instanced, showing the stats from 10 servers on the same page, for example)

b) a new team channel stats counters component - parameterized by a team name (such as #gsoc2023 ) that will show 3 counters --

i. number of team channels
ii. number of messages(sum across all channels of the team)
iii. number of users (of the team);

This component must also be multi-instance-able ... showing say 10 teams (from one server) on the same page

[TO DO] Bring over the RC4Community base

Minimalist port of the RC4Community full-stack framework to form the base of this project.

Should include at least ONE well constructed component - the Discourse Component.

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.