Git Product home page Git Product logo

website-members's Introduction

Better Uptime Badge

website-members

The part of the website that shows the members of RDS This page is hosted on: https://members.realdevsquad.com/

How can I contribute?

Wish to contribute? You can find a detailed guide here!

Development

This project uses Yarn and Volta for package management and version switching. So, make sure to install both to use the project.

From your terminal:

yarn dev

This starts your app in development mode, rebuilding assets on file changes. First, build your app for production:

yarn build

Then run the app in production mode:

yarn start

Project Structure

We are using Next.js for this project. Next.js has a well defined directory structure that must be used to make sure the apps runs properly. Read more about Next.js here

Pages

In Next.js, a page is a React Component exported from a .js, .jsx, .ts, or .tsx file in the pages directory. Each page is associated with a route based on its file/directory name. Read more about pages here. An example is given below -

Directory Structure

pages
|__ members
|   |__ [id]
|   |   |__ index.js
|   |
|   |__ index.js
|
|__ blogs
|   |__ index.js
|
|__ index.js

Routes Created by Next.js

/
/members
/members/[id]
/blogs

Note: In /members/[id] the [id] part is dynamic it can be 1, 2, a, etc.

Components

All the reusable components are created inside /components directory.

/components/pages

In Next.js it is adviced that the files inside /pages directory should contain as minimal code as possible, that's why all the code for a given page is written inside /components/pages directory and imported in /pages. For Example -

// Inside /components/pages/blogs/index.js
import React from "react";
const Blogs = () => {
  return <div>This is my first documentation, I am super scared.</div>
};

export default Blogs;


// Inside /pages/blogs/index.js
import React from "react";
import Blogs from "../../components/pages/blogs";

const BlogsPage = () => {
  return (
    <div>
      <Blogs/>
    </div>
  );
};

export default BlogsPage;

Note: Do not create individual files in /components or /pages. Put every file in folders with appropriate names.

Public

All the public assets like icons, images are stored inside public directory.

SCSS Guide

There are two ways to add styles in the project

Global Sylesheets

Create a stylesheet, for example nav-styles.scss

nav {
  padding: 20px 20px 60px;
  max-width: 680px;
  margin: 0 auto;
}

Import the nav-style.scss in a js file.

import './nav-styles.css';

const Nav = () => {
  return <nav>This is nav</nav>;
}

Note this way is suitable for writing global stylesheets only, for internal component stylesheets use CSS modules syntax explained below.

CSS Modules

Next support CSS Modules out of the box. To enable CSS Module for any SCSS stylesheet use .module.scss in the end of the filename. Let's see and example -

Creating a filename with the name button.module.scss

.btn{
  color: red;
  font-size: 100px;
  border: 0px;
}

In the JS file import this stylesheet.

import classNames from "./button.module.scss";

const Button = () => {
  return <button className={classNames.btn}>Click Me!</button>;
}

export default Button;

Importing styles in this way will scope all the styles to their respective files. So classname .btn is converted to [filename]_btn__[hash]. Read this guide for more info on CSS support in Next.js.

How to start ?

These scripts refer to the different stages of developing an application:

dev - Runs next which starts Next.js in development mode.

build - Runs next build which builds the application for production usage.

build-static - Runs next build && next export which builds the application and have a static version of app in the 'out' directory.

start - Runs next start which starts a Next.js production server.

website-members's People

Contributors

akshay1502 avatar aman7870 avatar ankushdharkar avatar bajajcodes avatar dashdeipayan avatar dependabot[bot] avatar gauravchauhan2403 avatar harshith-venkatesh avatar harshith-venkatesh-lumen avatar invalidtoken avatar kshashank99 avatar kshitij430 avatar lakshayman avatar manas-e avatar pallabez avatar pavangbhat avatar prakashchoudhary07 avatar priyanshk20 avatar rajat-mehra05 avatar ritikjaiswal75 avatar rohan09-raj avatar rohandhar1234 avatar rohitkuwar avatar sahsisunny avatar sanyogita14 avatar shubham-1994 avatar sumitd94 avatar swarajpure avatar vinayak-trivedi avatar vvaibhavdesai avatar

Stargazers

 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  avatar  avatar  avatar  avatar  avatar

website-members's Issues

Remove hardcoded image name

In components/helper-functions/urls.js I can see that we are constructing image url and have hardcoded img.png.

This can easily take a param for image name. We already have the image name in the member details in the website-static's data.json.

I am working on this change and will raise a PR for this.

Error on invalid JSON

We should not break the entire page, just because one json entry was incorrect. Please provide this error-handling

image

Adding aliases

Aliasing routes with jsconfig. An alias can help us in moving the code around, more confident.
Spoiler: your IntelliSense may yell at you.

set max-age using globally

currently we set max-age for SSR pages separately. We need to find a way to set it up globally so that is gets applied to all SSR Pages on our site.

Add _app.js file in /pages

  1. Add _app.js file in /pages. _app.js allows us to add global styles and components to our project.
  2. Change the way SCSS is imported. The SCSS import pattern should follow this.
  3. Add _document.js file in /pages directory. Read this

Animations on member card

This issue is to focus on change the raise action from entire card to image and highlight social media icons by 1.1 on hover

Option to allow the Recruiters to get the intro of members

We want a way for the Recruiters to reach out to the members on the site :

A form-based approach

  • Create a form

Inputs are :

  • Why do you want to contact this member?

  • Which company do you work for?

  • What is your role? (dropdown)

  • How to reach you if interested?

  • What is your compensation range? (optional, but worded differently)

Assignees:

  • Backend : Ankita link

Show a spinner when we click on members to display their data.

Currently when we click on a member profile, it takes few seconds before redirecting us to members.readldevsquad.com/<username>.
During this wait, we need to show a spinner so that anyone who clicks on the profile is aware that ok, something is happening

Add a hamburger menu for the navigation items

When we view our members page on smaller devices, the navigation bar design gets ugly

image

So when the width shrinks, we need to display a Hamburger menu, and upon clicking that a side drawer gets opened where we show our Nav Links. Something like this

image

PS - this image is only for reference purpose so that the requirements gets cleared.

Get PR details on SSR page

PRs take a while to load, after our page shows up.

We should render this on server-side, so it's ready when the page shows up

create a base layout

We should have a base page layout that will be used by all the pages. This will be the topmost container for all pages/components.

[WIP]Member Item Details Page creation

Hi Team,
I would focus on creating a page to display the details of the user on click of image card,
I plan to display the details from data.json.
I would take the discussion to the Members-site-react for more details

Fix linter scripts

Currently we have script for fixing linting errors but we don't have any script for running linter

Also, in pre-commit hooks, we are actually fixing linting issues instead of checking for linting issues which will make us to have 1 extra commit for 1 task. That is 2 commits for 1 task, which is unnecessary

We need to check the linting issues in pre-commit hooks instead of fixing them

We will also require to check linting issues for GitHub Actions CI

Update CONTRIBUTING.md

The current CONTRIBUTING.md file was created before we had adopted the git flow.
Required changes should be made in the CONTRIBUTING.md

Render member details on SSR during request side

Currently, we fetch all the members on client side via N fetch requests. This is bad for the UX, and we want to create these in the page during request time (or available in cache)

So, during Request time, fetch the N members on the server and then serve the HTML page

Upgrade Next 10.x React 17.x

 next                      9.3.5  →  10.0.4
 react                   16.13.1  →  17.0.1
 react-dom               16.13.1  →  17.0.1
 eslint-config-prettier  ^6.15.0  →  ^7.1.0

Contributions container design fix

We need to do 2 things here

  1. Add sliding animation when we click on the arrows here

image

  1. The width of the contributions container changes with the amount of data, this needs to be fixed

Before

image

After we expand the contributions

image

The layout shifts

Display a meaningful message to the user if they have not completed their signup process

Currently, if a member has not yet completed his signup process & when he checks his profile page
https://members.realdevsquad.com/<username>

the user sees this page

image

Instead of showing a 404, let's show them the process of how can they signup

The member has not completed the signup process yet. The signup process can be done by following the below steps:

  1. Go to www.realdevsquad.com
    Click on Sign in With Github
  2. go to https://my.realdevsquad.com/signup and complete the signup process

center the message

Remove cumulative layout shift on images loaded

When the logo image loads, it pushes the members pictures down. Sometimes, the logo loads after the initial members load. If I am about to click a particular member, it will jump down by the time I click. This is not a great UX and needs to be addressed.

cumulative layout shift for images

Read more here: https://web.dev/cls/

Shrink route to /<username>

The routes for member profile should be reduced from https://members.realdevsquad.com/members/<username> to https://members.realdevsquad.com/<username>

Members not showing up in doc loaded

According to #50, We want to load the members from the server itself, and in the first HTML GET, have the content already present.

But it's not working currently. You can disable the JS on your browser and check. We should ideally see the members, with JS disabled on the browser.

image

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.