website icon indicating copy to clipboard operation
website copied to clipboard

Write a project design doc

Open mattxwang opened this issue 4 years ago • 10 comments

One of the things I think Creative Labs does particularly well is writing a DESIGN_GUIDELINES document. They outline their tech stack, file/component structure, approaches to styling and modularizing and in general, how they make decisions. I think this piece of documentation - if it's updated - is invaluable for onboarding new members and making our project more contributor-friendly.

I propose we make a project design doc. We should discuss (with heavy inspiration from Creative Labs):

  • project principles
  • code style and format (with a callout to linting and auto-formatting)
  • our general tech stack
  • repository architecture / file structure (with a callout for file-based routing)
  • component design
  • styling (with a callout for SCSS and CSS modules)
  • utilities
  • assets
  • data

A tricky portion is that we are writing this after-the-fact, rather than driving a project with a set of design guidelines already in mind. However, this document can also be a goalpost for the direction of our project - in transitioning to React hooks, for example.

This will also be a team-driven effort, and I'd love to see someone else on the @uclaacm/dev-team champion this!

Related to #187; inspired by #198.

mattxwang avatar Jul 07 '21 21:07 mattxwang

cc: @advaithg @evanzhong @BryanPan342

mattxwang avatar Jul 07 '21 21:07 mattxwang

I really like the direction this is going.

Only thing that comes to mind right now is how to divide information between this page and our README and other documentation that (likely) will be proposed down the line.

From a quick scan I see CL also has a Contributing Guidelines doc. We talk about some of this content, in addition to how to setup a dev environment in our README.

evanzhong avatar Jul 07 '21 23:07 evanzhong

Some insight into our doc decisions:

  • I personally hate absurdly long READMEs. IMO a README should give you just enough info to get started with a project
  • Our contributing guidelines is meant to help anyone (internal or external) in navigating how to make their first PR
  • Design Guidelines are a source of truth when it comes to reviews and consistency. If there are disagreements in styles, we will reference the design guidelines!

BryanPan342 avatar Jul 07 '21 23:07 BryanPan342

Wanted to bump this issue (@annaguo1012 and @advaithg) and also wanted to mention that Regina has been working on some great documentation for Teach LA's high-level goals + implementation strategy, and might be a good person to consult if she's free / can share the doc with you.

mattxwang avatar Oct 14 '21 04:10 mattxwang

👀 👀 owo

I'd be down to chat/share the doc if it's helpful! TeachLA was also thinking of having a project plan doc and such if that's something y'alls would ever want to discuss

reginawang3495 avatar Oct 14 '21 05:10 reginawang3495

i'd love to help work on this; were y'all also considering making a design doc a requirement for every issue/PR perhaps?

dtjanaka avatar Oct 14 '21 08:10 dtjanaka

i'd love to help work on this

slide on in :)

were y'all also considering making a design doc a requirement for every issue/PR perhaps?

Hm, that's up to y'all - it probably depends on the scope of the issue, but at the end of the day this is all in your hands now - excited to see what happens!

mattxwang avatar Oct 14 '21 16:10 mattxwang

Thanks for bumping this, Matt! I think it'd definitely be helpful to have this done before we start onboarding our new interns in the winter.

@reginawang3495 @dtjanaka thank you both for offering to help too hehe. Maybe we could set up a meeting sometime soon? (bearing our midterms schedule :,))

annaguo1012 avatar Oct 14 '21 21:10 annaguo1012

It’s more like I’m open to helping if needed :) I don’t necessarily need to be in the calls!!

reginawang3495 avatar Oct 15 '21 02:10 reginawang3495

More on this: starting last spring the dev team decided to have project outline documents that serve as living documentation so that when legacy projects get passed down from teams to teams, we can make the developer transition easier than ever. (linked template doc here!) (shout-out tla for starting the template i based this template off of)

It covers a lot of stuff for developers like above, but also has a couple things that are great for the overall vision of a project like what exactly does the project do, who's the Points of Contact for project purpose vs. design vs. tech, etc. and a link to it will be put inside of the CONTRIBUTING.md at the root of each project.

We're currently making one for the legacy projects and will def make one for the website as it's the project that gets passed down the most!

matthewcn56 avatar Sep 10 '22 06:09 matthewcn56