awesome-code-reading icon indicating copy to clipboard operation
awesome-code-reading copied to clipboard

Spectrum

Open kbariotis opened this issue 5 years ago • 3 comments

Link to the codebase

https://github.com/withspectrum/spectrum

Which release/version did you read?

The latest

Why it is a good project to read?

It's a complete project with lots of contributors. I like it for various reasons:

  • It's written in JavaScript which needs quite a few decisions in order to create a maintainable and extensible codebase. They have everything sorted out though, the linter, the test suite, the type system, etc.
  • It's a monorepo which I love working on one rather than on many many different repositories.
  • It uses async workers to delegate tasks to other services. The separation of concerns is very good and they have avoided bloating the backbone from the get-go.

kbariotis avatar Oct 24 '18 19:10 kbariotis

Yes, agree

francishero avatar Oct 24 '18 19:10 francishero

@kbariotis thanks for the contribution. I will try to add a little more information since it looks like a fairly large project. Do you mind if I edit this issue?

lucasleecr avatar Oct 24 '18 22:10 lucasleecr

I looked into it a little bit more, and I have to agree that it's a good project to read. I like how the project is neatly structured. From the README:

spectrum/
├── api        # API server
├── athena     # Worker server (notifications and general processing)
├── chronos    # Worker server (cron jobs)
├── desktop    # desktop apps (build with electron)
├── docs
├── email-templates
├── hermes     # Worker server (email sending)
├── hyperion   # Server rendering server
├── mercury    # Worker server (reputation)
├── mobile     # Mobile apps
├── public     # Public files used on the frontend
├── shared     # Shared JavaScript code
├── src        # Frontend SPA
└── vulcan     # Worker server (search indexing; syncing with Algolia)

As said by @kbariotis, each sub-folder has its own concern and can be run separately.

I looked at a few files in the api server and they seems to be pretty clean and well-written. I think this will be a good project for someone who wants to learn how to implement chat.

I will read it a little more when I get a chance. There are a lot of interesting stuff in the repo. I can probably learn a ton from the mobile app and the Frontend SPA.

I am adding this to the list. Thanks again @kbariotis and @francishero for sharing it.

lucasleecr avatar Oct 25 '18 03:10 lucasleecr