Git Product home page Git Product logo

groupcollaborationtool's People

Contributors

abrie avatar chadchristensen avatar clarkj99 avatar danieljwagener avatar gitchrisadams avatar jasminnancy avatar mgilarmo avatar nerajno avatar nicole-gathany avatar ransing avatar rosenkrans avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

groupcollaborationtool's Issues

Make Stylish

This issue is open to any and all.
Improve the UI with color, layout, images, words, sounds, UX patterns...
Make things look less default.

Make sure all user profile information is persisted in Firebase

I just noticed that only my profile's description field gets persisted in Firebase. It doesn't have a displayName, so I don't show up as a follower after I follow a project. I can't look too deep into it right now because I'm about to get into my car and drive over to Whole Foods, but maybe we can look into this tonight.

UI+Backend: Implement project subscriptions.

Users need a way to subscribe/follow a project.

UI

  • Add an action button called 'follow/unfollow'
  • List followers in the Project Details component

Backend

  • Design Firebase collection for associating users with project.

UI: The "SignIn" Button on TopBar flashes a misleading message.

This is a UI bug/issue.

Observe that the app flashes a "Sign In" control when the page is reloaded, even if logged in.

output

Suspect this is because no distinction is made between the initial and logged-out app states. Fix would be to discern between undefined, null, and valid session values.

Add "Account" item to hamburger menu

We need a way to navigate to the Account menu from any other page.
Presently the user can click their name, but another alternative would be good.
Adding a button to the hamburger menu seems to be most obvious solution.

Hide hamburger menu when drawer open.

Clicking on the Hamburger opens the NavDrawer. Clicking the 'โฌ' chevron closes the NavDrawer. Therefore, when the NavDrawer is open, the Hamburger icon is redundant. The Hamburger icon should be hidden when the NavDrawer is open, and shown only when the NavDrawer is closed.

This gif shows the current, undesirable behavior:

out

Refactor: The 'drawerOpen' prop is an antipattern.

The app has two render states; NavDrawer Open, and NavDrawer Closed. The state is communicated to components via a prop. Ideally this should be moved to a a context and have better inversion of control.

image

UI: Implement an explicit indicator for Development deployment.

Background: We use two different Firebase environments: Production, and Development. The production environment is used by https://groupcollaborationtool.web.app, and the dev environment is used by http://localhost:3000. This protects production data from development mishaps.

Issue: There is no way to discern between these two environments, other that the browser URL address. It would be good if you explicitly label the dev deployment with something on the app, maybe replace the "Groopa" menu title with a different word/color/image... or any other way you think is unobtrusive but obvious. It should only be present for local development environments.

Highlight Active Component in NavDrawer

When the NavDrawer is open, it should highlight the menu item associated with the active component. For example, if the "Projects" component is active, the "Projects" menu item should be highlighted. Furthermore, ff the "Account" component is active, "Account" should be highlighted in the NavDrawer.

DevTooling: Standardize Code Formatter

I use a code formatter, Prettier, that automatically adds and deletes spaces, among other things. These aesthetic changes obfuscate what's actually happening when we look at the diffs in pull requests and such. I propose we settle on a .prettierrc.json file that everyone will use.

UID undefined error for New Project and Edit Project pages

When you try to navigate to the Create a Project or the Edit Project pages, an error is displayed 'Cannot read property 'uid' of undefined'.

The structure of session changed recently, so instead of accessing the uid by session.user.uid we need to access it by session.uid.

Dev Tooling: Conflicting Package Managers

The repository contains both yarn.lock and a package-lock.json. Everything is working fine for now, but for sake of sanity we'll need to standardize on one. Maybe we should hold a vote: NPM or Yarn.

UI+Backend: Change "Open Source" project type to "Public"

When creating a new project, the user is asked to select a project type, either "Open Source" or "Private". The choices should be "Public" and "Private".

image

Once this issue is closed, we'll need to go to older projects and change the "Open Source" labels to "Public". That is a different issue.

Create Storybook

Storybook documentation: https://storybook.js.org/docs/guides/guide-react/

I played around with this today. A major issue I'm encountering is that a lot of our components require context and Firebase data to render (e.g. the Projects component). I can workaround the issue by adding a storybook prop to the component and doing stuff like this:

export default function(props) {
  if (props.storybook) {
    const projects = [
      {
        description: 'This is a public project',
        name: 'Example 1',
        owner: '0',
        type: 'Public',
        id: '0'
      },
      {
        description: 'This is a private project',
        name: 'Example 2',
        owner: '0',
        type: 'Private',
        id: '0'
      }
    ];
    return (
      <div style={{ marginTop: '30px' }}>
        <div>Group Collaboration</div>
        <ProjectsTable projects={projects} />
      </div>
    );
  }

Problem is, this will pollute our components with a lot of logic like IF props.storybook load dummy data, ELSE load data normally. Ideally I'd like to keep all Storybook logic inside the src/stories directory.

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.