Skip to content

A collection of open-source software solutions designed for the modern web and enterprise scale.

License

Notifications You must be signed in to change notification settings

iwillcodeit/bluelibs

 
 

Repository files navigation

BlueLibs Logo

coverage GitHub license GitHub stars Discord

Quick Note

If you want to keep track of our progress, or just show a little bit of support, click the Watch 👁‍🗨 button or give us a Star ⭐️. Thank you!

About BlueLibs

BlueLibs is a collection of open-source products which help you quickly prototype web applications and scale your app while respecting SOLID principles. This is our official website, this is our documentation page.

Features:

Get Started

Our rapid prototyping solution (Blueprint for X-Framework) is tightly coupled to GraphQL and MongoDB. BlueLibs as a whole isn't. and supports SQL.

# Install MongoDB & Node 14+
npm i -g @bluelibs/x
x # pick project and complete it there
cd project
npm run blueprint:generate
npm run start:api
npm run start:admin # Start after API has started

Learning BlueLibs

We have designed a custom documentation experience with custom code snippets and challenges.

Security Vulnerabilities

If you discover a security vulnerability within BlueLibs packages, please send an e-mail to Theodor Diaconu via [email protected]. All security vulnerabilities will be promptly addressed.

License

The BlueLibs ecosystem is open-sourced software licensed under the MIT License.

Repository Structure

This monorepo is split like this:

  • ./templates/* things that are re-usable, like a new package template and others
  • ./scripts/* things we use for internal development
  • ./packages/* where all packages lie
  • ./assets/* things needed for GitHub README page

We use lerna so when you are in development phase you could use lerna link, and for example if your package depends on another package, for example, logger-bundle depends on core, you go to logger-bundle you run lerna link, then go to core and run npm run watch, now logger-bundle will use the updated variant of core.

If you want to try your new changes to an external application (outside this monorepo), the solution is to use bluelibs-package-replace binary:

# From Monorepo Root
chmod 755 /usr/local/bin/bluelibs-package-replace
sudo ln -s /usr/local/bin/bluelibs-package-replace `pwd`/scripts/bluelibs-package-replace

Now go to your microservice and simply run bluelibs-package-replace x-ui. This will properly update your package version to the one you have in the monorepo. Make sure you're also watching changes in x-ui package via npm run watch.

Each package uses jest and ts-jest for development testing:

npm run test:dev

To run tests in C.I, we have the command npm run test which compiles the code and runs the final tests.

Branching & Commits

Names

  • feature/{package}/{issueNumber}-short-summary (feature/mongo-bundle/143-solve-the-bug-with-blablbla)
  • fix/{package}/{issueNumber}-short-summary
  • fix/{package1}-{package2}/{issueNumber}-short-summary

Commits

  • fix({package}): {message} (#143)

  • Example: fix(mongo-bundle): Solved the issue with async (#143))

  • feat({package}): {message} (#143)

  • deps({package}): {version}

  • docs({package}): {message}

  • fix({package1}, {package2}): {message}

PRs

  • Checkout from main
  • git checkout -b feature/{package}/{issueNumber}-short-summary
  • an initial empty commit: git commit -m "fix({ package }): do that (#143)" --allow-empty
  • Create the PR prefixed with [WIP] Title of the branch
  • Ensure that inside the branch there's a link to the issue
  • Create for yourself a list of tasks for the issue (Implementation, Testing, Documentation) using GitHub Task's markdown
  • Once the task is ready prefix it with [R].

About

A collection of open-source software solutions designed for the modern web and enterprise scale.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 91.9%
  • Smarty 4.7%
  • JavaScript 2.2%
  • Shell 0.9%
  • CSS 0.1%
  • HTML 0.1%
  • SCSS 0.1%