GithubHelp home page GithubHelp logo

merylldindin / helix Goto Github PK

View Code? Open in Web Editor NEW
11.0 2.0 0.0 9.85 MB

Nuxt SSG Template

Home Page: https://merylldindin.com

License: Apache License 2.0

JavaScript 4.04% Shell 0.28% Makefile 0.98% TypeScript 35.08% Vue 52.74% SCSS 6.89%
lottie nuxt3 typescript vue3 vuetify3 portfolio swiper-js website

helix's Introduction

helix

Nuxt SSG Template

View Demo · Report Bug

Table of Contents

  1. About Helix
  2. Built With
  3. Get Started
  4. IDE Recommendations
  5. Code quality
  6. Git Conventions

About Helix

Helix, from my set of BioForge initiatives, is a project born out of my frustration with LinkTree's limitations. Helix is a visually appealing and customizable way to showcase your journey, projects, and objectives all in one place.

Built With

Get Started

# install dev experience
make setup
# install dependencies
make install
# launch Nuxt instance
make start

IDE Recommendations

I recommend working with VSCode, an IDE that does not need to be presented. Internally, I use a set of code extensions enabling a minimum of code standardization, making the life of many developers more enjoyable. Those extensions are given in .vscode/extensions.json, and can be downloaded directly via the VSCode extension store. This goes hand and hand with properly configured VSCode workspace settings, available in .vscode/settings.json.

Code Quality

Husky:

Many of our internal toolings are enforced via husky, a wrapper for Git hooks. I currently enforce two hooks:

  • commit-msg relying on commitlint to make sure that our commit conventions are respected
  • pre-push relying on a yarn command to run locally a majority of our CI scripts

Make sure those hooks are correctly configured via

yarn setup

Prettier:

To maintain some minimal standards within our codebase, I rely on prettier that is configured through .prettierrc. I use .prettierignore to avoid conflicts with some configuration files that would otherwise be broken by using prettier. Make sure prettier is correctly used in VSCode by installing the VSCode extension.

Helpers:

I use Node 19.5, and rely on yarn. Alongside that environment, I use the following tools to maintain high code standards:

Naming Conventions:

"There are only two hard things in Computer Science: cache invalidation and naming things." - Phil Karlton

That is exactly why it is important everyone follow guidelines regarding naming conventions, especially when moving quickly as a team. Here are a set of rules that will most likely guide you through any problem you would face:

  1. Do not use abbreviations
  2. Use at least 2 words for function names
  3. Boolean variables should be infered from their name (e.g. start with is_ or has_)

Typescript

  1. Use PascalCase for component registration and name
  2. Use PascalCase for component folders
  3. Use camelCase for pure JS/TS files and functions
  4. Use SCREAMING_SNAKE_CASE for constants
  5. Use BEM conventions for SCSS
  6. Use 2 to 3 words for component naming
  7. Name your colors using this project

Configure Vuetify for BEM

I use Vuetify as our material design framework. It provides us with a set of components and themes. It is core to our frontend endeavors, and requires a bit of configuration. Vuetify relies on composition function on top of our configuration to provide helpers available throughout the codebase, and colors are a part of it. To abide by our conventions, I need to configure Vuetify to use BEM for its classes via src/plugins/vuetify.client.

That way, you will now be able to use var(--v-theme-steel-gray) or text-steel-gray in your codebase. I also expose the enum of our colors through our @/types for conveniency.

Typing:

Typing is key to maintainability. It will increase the readability of the code, but will also passively document your code. Finally, type checking will help to find some obvious bugs.

TypeScript is fully integrated into our CI pipeline via GitHub Actions. In addition to that, you'll be warned by Nuxt about any type errors when developing locally. I expose the command yarn types to run the type checker manually.

I aim to make our types as specific as possible. The use any is strongly discouraged in favor of unknown.

Git Conventions

Branches:

I have a simple convention for branch naming: {initials}/{descriptive-kebab-case}. Keep them all loIrcase. For John Doe working on a feature A, that would be jd/feature-a.

Commits:

The Conventional Commits specification is a lightIight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history; which makes it easier to write automated tools on top of. This convention dovetails with SemVer, by describing the features, fixes, and breaking changes made in commit messages. Learn more here.

Pull requests:

There are simple rules in regards to our PR management:

  • Link your PRs to their related Notion tickets;
  • Use prefixes for your PR titles among [FIX], [FEAT], [REFACTOR], [RELEASE], [HOTFIX], [TEST];
  • If your code affects the application build, be sure to update the README.md;
  • Do not merge a PR until all comments are resolved;
  • Remove your branch after merging;

helix's People

Contributors

dependabot[bot] avatar merylldindin avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

helix's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • chore(deps): update yarn-minor (@nuxt/devtools, @nuxt/eslint, @nuxt/eslint-config, @types/node, @typescript-eslint/parser, @unhead/addons, husky, vite)

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/helix.yml
  • actions/checkout v4
  • actions/setup-node v4
  • actions/cache v4
  • actions/cache v4
  • cypress-io/github-action v5
npm
package.json
  • lodash 4.17.21
  • nuxt-jsonld 2.0.8
  • nuxt-swiper 1.2.2
  • vue3-lottie 3.3.0
  • vuetify 3.7.0
  • @commitlint/cli 19.4.0
  • @commitlint/config-conventional 19.2.2
  • @mdi/js 7.4.47
  • @nuxt/devtools 1.3.9
  • @nuxt/eslint 0.5.0
  • @nuxt/eslint-config 0.5.0
  • @nuxt/types 2.18.1
  • @nuxt/vue-app 2.18.1
  • @nuxtjs/sitemap 5.3.5
  • @types/eslint 9.6.0
  • @types/lodash ^4.17.6
  • @types/node 20.16.0
  • @typescript-eslint/parser 8.1.0
  • @unhead/addons 1.9.16
  • @vue/compiler-sfc 3.4.38
  • cypress 13.13.3
  • eslint 9.9.0
  • eslint-config-prettier 9.1.0
  • eslint-plugin-prettier 5.2.1
  • eslint-plugin-unicorn 55.0.0
  • eslint-plugin-vue 9.27.0
  • globals 15.9.0
  • husky 9.1.4
  • nuxt 3.12.4
  • nuxt-link-checker 3.1.0
  • nuxt-unhead 1.4.20
  • postcss-html 1.7.0
  • postcss-scss 4.0.9
  • prettier 3.3.3
  • prettier-plugin-packagejson 2.5.1
  • rollup 4.21.0
  • sass 1.77.8
  • serve 14.2.3
  • stylelint 16.8.2
  • stylelint-config-recommended-scss 14.1.0
  • stylelint-config-recommended-vue 1.5.0
  • stylelint-config-standard-scss 13.1.0
  • stylelint-prettier 5.0.2
  • typescript 5.5.4
  • vite 5.4.1
  • vue 3.4.38
  • vue-gtag-next 1.14.0
  • vue-tsc 2.0.29
  • node 20.14.0
  • yarn 4.3.1
  • semver >= 7.5.2
  • tough-cookie >= 4.1.3
  • yarn 4.3.1
nvm
.nvmrc
  • node 20.14.0
pep621
pyproject.toml
  • poetry-core >=1.0.0
poetry
pyproject.toml
  • python ~3.12
  • sirtuin ^1.0.1

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.