Code Monkey home page Code Monkey logo

2021's Introduction

CUSEC 2021 Website

Preview

The website is deployed to two different Firebase projects. They are separate production and staging environments, based off the master and develop branches respectively.

They can be visited through the following links.

Production:

Staging:

Notes

The @firebase/testing dev dependency is set to an older version due to a bug with the current ones. Please see firebase/firebase-js-sdk#3096 and https://stackoverflow.com/a/61934298 for more details.

Testing

To run the Firestore security rules unit tests, first, start the emulator with the Firebase CLI. Make sure it is installed beforehand.

firebase emulators:start --only firestore

Execute unit tests with:

npm run test

2021's People

Contributors

sttic avatar gordonpn avatar ellenli030 avatar eharason avatar dependabot[bot] avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar Vijeta Patel avatar Bernie avatar  avatar Afreen Aliya avatar Zach Hauser avatar  avatar

2021's Issues

Add Genetec, Unity, and Nokia sponsors

See Slack (in #tech_design) for the options of logos Genetec (and Unity?) explicitly sent to us. The others can be a placeholder one from their site, searching for it, or something like https://www.logo.wine/

  • Genetec and Unity are gold sponsors
  • Nokia is a silver sponsor

Possible top bar bug

When on mobile, the top bar is visible on the initial load and the page position is at the topmost. Once we scroll down and flick back up, the top bar is no longer visible when we are at the top again.

Is that the intended behaviour?

Please see the GIF animation below:

demo

Also reproducible on Chrome mobile browser.

Fix jerky scrolling on mobile

The resize event listeners are causing scrolling to be a bit jerky on mobile as the page is trying to resize the splash screen area to take the full height. Meanwhile, we need a way to resize the splash screen area correctly if the device is rotated to landscape.

GIF for demonstration:

ezgif com-video-to-gif

Registration Page

TBD requirements

  • Resumes upload
  • User email
  • Name
  • School
  • Program
  • Year
  • Agree terms of use and code of conduct
  • Analytics (where did you hear about CUSEC?)

Dispatch an email to the user upon successful registration through Firebase? (With Hopin registration link)

Product Pitch Page

New 'splash page' for the RBC Product Pitch competition.

  • at route /product-pitch
  • similar to original CUSEC splash page with email sign-up

Create README

Create README.md and potentially more detailed Wiki documenting project. When taking on the issue, you should split this issue into separate README and Wiki ones and expand or clarify on the points.

Product (Wiki)

  • features
  • use cases
  • design decisions and reasoning
  • ...

Development

  • setting up repo
  • running locally
  • how Firebase is connected/used
  • testing
  • deployment strategies
  • ...

Update Top/Nav Bar

Update nav for the landing page

  • include different sections users can jump to (scrolls to it)
  • collapse to some sort of hamburger when on mobile
  • (on desktop) consider animations/transitions to:
    • hide when scrolling down and show when scrolling up
    • have transparent bg when at top to not take away from hero, but solid bg otherwise (ex. https://hackthenorth.com/)

HackaComm Edit description and banner

  1. CUSEC logo should be added to the hackacomm banner

  2. The meta description makes it look like registration is open until January 10, change to January 5.

Assorted UI/UX improvements

To be determined/finalized. Some of the points below are more so brainstorming ideas rather than actual requirements to implement.

Hide or shrink "Ways to experience CUSEC" icons on smallest breakpoint

image

Consider adding underline highlights to keywords

Like on the FireFox website but with our colors

image

import { ReactElement } from "react";
import styled from "@emotion/styled";

const GradientUnderlineSpan = styled.span`
  display: inline-block;
  position: relative;

  &::after {
    background-image: url("https://www.mozilla.org/media/protocol/img/zaps/zap-09.bc0c0b72fdaf.svg");
    background-repeat: no-repeat;
    background-size: 100% 100%;
    content: "";
    left: -0.2em;
    position: absolute;
    top: calc(100% - 0.4em);
    height: 0.3em;
    width: calc(100% + 0.4em);
  }
`;

export default function GradientUnderline(props: {
  children: string | ReactElement;
}): ReactElement {
  return (
    <>
      <GradientUnderlineSpan>{props.children}</GradientUnderlineSpan>
    </>
  );
}

Set a max width container

Limit content to some maximum width to provide a usable experience even on absurdly high resolution displays.

Consider adding more spacing to nav bar items

They're too close together?

image

Also consider porting the link hover effect from the footer. Something like this:

image

export const NavBarLink = styled(Text)`
  font-family: "Inter", sans-serif;
  font-weight: 500;
  margin-right: 32px;
  position: relative;

  &:after {
    background: ${theme.colors.brand.dark_teal};
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 100%;
    height: 4px;
    opacity: 0;
    transform: translateY(3px);
    transition: opacity 0.2s ease, transform 0.2s ease;
  }

  &:hover::after {
    opacity: 1;
    transform: translateY(0);
  }
`;

Make "Ways to experience CUSEC" cards slightly thinner on desktop

The cards can sometimes show up as a single vertical column instead of 2x2 depending on browser/system? Make smaller to accommodate a larger range of displays.

Adjust min-heights in hero to accommodate the extra space the nav bar takes up

There's not much space at the top especially on something like a 1080p phone with the mobile address bar down.

Consider tweaking sizing of headlines and section spacing

The spacing between sections feels a bit cramped? Please see Figma for latest mock-up.

Update hero for landing page (instead of splash page)

  • include a register button (replace the email listing signup?)
  • consider using "Virtual Event" instead of "Virtual Experience" to be more clear?

Analytics not working

The Google Analytics built into Firebase isn't configured right

  1. firebase.analytics() needs to be called
  2. Also some extensions or browser features may block analytics domains/scripts
    • some issues seen in firebase/firebase-js-sdk#2600
    • bundling it in the build-export instead using the reserved hosting URLs (installing with npm vs loading with <script> tag) may work around it?
      • would need to update CI/deployment configs to keep staging and production environments intact

Create Speakers section

Add carousel of images and quotes of past speakers.

  • automatically switch speaker after certain amount of time
  • user can select a specific speaker to highlight by clicking on them
  • hovering over speaker temporarily pauses the switching
  • shows tool-tip of basic speaker information when hovering over

Contact Page

A contact page with the three main email address of CUSEC our visitors could use to email us and ask questions.

Show head delegates of each university, with picture and email.

Rearrange/modify splash page mailing list and sponsor link items

Would it make sense to put "Join our email list" and the input box on the same line? And move the "Interested in sponsoring?" text to it's own line in Desktop?

"Join our email listing" => "Join our email list" or "Join our mailing list"

https://cusec-team.slack.com/archives/C03KB4HCN/p1599061048000400?thread_ts=1598997168.005300&cid=C03KB4HCN

Currently:

image


It might be tricky finding a layout on desktop that makes the "Join our mailing list" message association clear while also not taking up too many lines.

Missing image is shown during load

Missing image is shown during load, at least on Chromium based browsers. The effect is more prominent with slower connections.

image

Consider importing the SVG assets instead of loading them in an <img>:

Or more generally, use a webpack plugin that supports multiple image formats

Create Hero top section

Depending on timeline, we may want to launch a minimal 2021.cusec.net with just the top hero section first.

Background graphic is not finalized but can be swapped fairly easily.

Add ticket-offering universities to Sponsor Showcase section

Remove "Stay tuned for more!" text at bottom of sponsor section and add (at the bottom) the logos for

  • University of Waterloo
  • University of Ottawa
  • University of Toronto
  • Carleton University
  • University of Calgary

These are the universities who have bought/subsidized tickets for their students.

Events Page

A page to explain the different types of events the virtual conference will host.

Update to Next.js 10

The new image features look really cool! The sponsor showcase section may benefit from it.

When using the next/image component, images are automatically lazy-loaded, meaning they're only rendered when the user is close to seeing the image. This prevents loading that 30% of images outside of the initial viewport.

Image dimensions are enforced, allowing browsers to immediately render the space needed for the image instead of having it jump in when loaded, preventing layout shift.

Even with these improvements compared to the HTML element, there's still a major problem. The 2000 by 2000 pixel image is sent to phones that render a smaller image.

With Next.js 10 we're also solving that problem. The next/image component will automatically generate smaller sizes through built-in Image Optimization.

Create section explaining virtual experience

Update: will likely leave this out

Add a section or some sort of popup that explains the reasoning behind the virtual experience.

Something like this from Hack the North:
image

Currently blocked by design and content/wording.

Prepare for "silent" release

A release without an accompanying promotion post, before registration details are finalized.

  • replace hero register button back with email signup
  • remove ticket pricing register button
  • link sponsor button
  • show 2x2 card grid in Ways to experience CUSEC section on 1440x900 displays (i.e. MacBook Air)
  • add attributions footer modal

Also see #64

Schedule Page

Timeline of the events and speakers, of the weekend of the conference.

Installing dependencies takes much longer during builds

Installing dependencies takes much longer during builds.

See https://github.com/cusec/2021/runs/1366985806?check_suite_focus=true versus https://github.com/cusec/2021/runs/1344483283?check_suite_focus=true on Install Dependencies step (3m 35s and 20s respectively).

The extra time seems to be from falling back to source compile due to grpc pre-built binaries not being found.

> [email protected] install /home/runner/work/2021/2021/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library

node-pre-gyp WARN Using request for node-pre-gyp https download 
node-pre-gyp WARN Tried to download(404): https://node-precompiled-binaries.grpc.io/grpc/v1.24.2/node-v83-linux-x64-glibc.tar.gz 
node-pre-gyp WARN Pre-built binaries not found for [email protected] and [email protected] (node-v83 ABI, glibc) (falling back to source compile with node-gyp) 
make: Entering directory '/home/runner/work/2021/2021/node_modules/grpc/build'

Potential solutions:

Add HackaComm link

Add a dismissible bottom banner/popup on the main page (/ route) linking to the HackaComm page (/hackacomm route) to improve its visibility.

Very similar to Hack the North's BLM message (desktop/mobile):

image

image

WIP message: "Check out HackaComm: a brand-new hackathon brought to you by CUSEC and RBC!"

Having global Head alters TopBar style

It seems like having global Head (in _app) alters the classes/styling applied to TopBar components and potentially more.

It was introduced in 0718853 and the most obvious effect is the Social icons becoming smaller. A new class is being applied to it that overrides the width that was previously set.

Edit: I'm not exactly sure but I feel like it's something to do with trying to set the fontawesome width with emotion/styled instead of using its props. Idk why the issue didn't appear earlier though ๐Ÿคท

Speaker Page

A page to showcase all the speakers of the conference, with description (and biography).

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.