webdevatlanta / groupcollaborationtool Goto Github PK
View Code? Open in Web Editor NEWTool to allow developers to collaborate on open source and private projects
Home Page: https://groupcollaborationtool.web.app
Tool to allow developers to collaborate on open source and private projects
Home Page: https://groupcollaborationtool.web.app
We need a way to navigate to the Projects menu from any other page.
Adding a button to the hamburger menu seems to be most obvious solution.
This issue is open to any and all.
Improve the UI with color, layout, images, words, sounds, UX patterns...
Make things look less default.
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.
Users need a way to subscribe/follow a project.
Because the current state is mildly offensive to sensibilities...
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.
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:
The repository link should be shown in the Project component.
The project owner should be able to edit the field.
Currently, when 'Verify' is clicked, the UI updates to 'Verifying' - instead it should change to 'Check your email'
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.
Button will allow people to automatically join open source projects and request to join private channels.
Almost all the other components have a "Renders Without Crashing" test, but there is none for this one. There needs to be one.
Expected: The signout page should redirect to the sign-in page if signed out.
Actual: The signout page offers you the chance to sign out, even though you are not signed out.
sessionContext is setting user to the user object instead of the value of user in App.js
To replicate:
Expected behavior is to see only the authenticated content, without the spurious request to sign in.
The landing page is still using the old firebase.auth.currentUser
method to check for authorization. It should be checking the Session context instead.
Industry standard is that clicking the icon goes back to the home/landing page.
Let's make it do that.
On the signin page, there should be a link for the user to reset their password.
Expected: Once signed in, the NavDrawer should display a "Sign Out" button.
Actually: The button never changes, and remains "Sign In".
The NavDrawer component has NavLinks to "/" and "/projects". These should be using the Routes constants instead, defined in src/constants/routes.js
Each project needs a place to post/share relevant messages.
To duplicate:
Expected behavior:
Authentication should persist between reloads.
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.
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.
TESTING
test
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
.
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.
Expected: If the user is logged in, they probably don't need to reset their password via email.
Actual: The ForgotPassword allows the user to reset their password via email, even if logged in.
Expected behavior: Consistent labeling of either "Login" or "Sign In" across site.
Current behavior: "Sign In" in sidebar, "Login" in header
If a project is private, then it should not be visible to the public.
The project should be listed in a view accessible only to the project owner.
This new view should be a new component, or in the Account component.
Open to debate.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.