cookbook

module
v0.3.1-0...-f989871 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 7, 2021 License: MIT

README

Cookbook

This is a "monorepo" of stuff that I like working on. Most of the seperate project directories have their own READMEs, which should help provide some more guidance on what they do.

Background

Why does this exist?

I like working on projects. The key thing I like about CS as a field is that I can have an idea and then just do it. It might not always be a good idea; if it is a good idea, someone else will probably already have made a better version of it. Neither of those things get in the way of me enjoying working on projects.

But having several repos each containing a single project is kinda inconvenient. It means I would need to publish a large number of very small utilities in order to get a consistent development experience, and I don't think that's great for anyone. Monorepos are the solution to that for big companies (among other problems), and I think they'll work well enough for me. (More to the point, I've worked at a company with significant inter-project dependencies, and we needed to put a lot of work into faking a monorepo at build-time in order to catch integration problems, and what we put together only kind-of solved the problem).

License

The MIT license. See LICENSE.md for details.

Should I use this?

In general, no.

If you want to, though, go for it! I'm very open to issues or PRs, though I can't always guarantee that I'll get to them in a timely manner. Individual projects within this repo will have more information on building an using them, as well as a more detailed description of their status.

The Code

Backend Things

All of the backend things are built with bazel. I don't know Bazel that well, but I'm learning as I go.

You should see individual folders for more detailed information.

You can test everything (in CI, for instance) with bazel test ....

Frontend Things

Frontend things are built with Node / Yarn, seperately from all the backend things. I haven't been able to get the frontend build to play nicely with Bazel, so it's basically just a seperate workspace on top of the backend one, living in the same repository.

  • packages/punchcard-ui - Contains the frontend for the punchcard backend. A typescript / create-react-app single-page application.
    • Build with yarn workspace punchcard-ui build
    • Test with yarn workspace punchcard-ui test
    • Run dev server with yarn workspace punchcard-ui start. If you do this, you can start a mock backend with yarn run punchcard:backend (or, I guess, you can run the real backend, but it's kinda inconvenient).

You can test everything (in CI, for instance) with yarn workspaces test.

Directories

Path Synopsis
punchcard
strava
api

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL