Skip to content

Kibibit/achievibit-v3

Repository files navigation

achievibit Logo

@kibibit/achievibit

Server Unit Tests Client Unit Tests API Tests E2E Tests All Contributors

Github Gamification - Achievements system as a GitHub WebHook.


Production Production Docs

Beta Beta Docs

Description

  • Get achievements on different characteristics of your pull requests
  • Use the achievibit chrome extension to see achievibit inside GitHub

how to use

WIP: V3

Running inside devcontainer (Recommended)

  1. Open the project in vscode

  2. Click on Reopen in devcontainer notification, or open command prompt (CMD+SHIFT+p) and run Reopen in devcontainer

  3. After the project is reopened, approve the pnpm i command run (replacing node_modules)

  4. you need a configuration file for the server to run. You can create a server/.env.devcontainer.achievibit.json file with the following content:

    {
       "$schema": ".schemas/achievibit.env.schema.json",
       "BASE_BACKEND_URL": "http://localhost:10102",
       "PORT": 10102,
       "JWT_SECRET": "development-mode",
       "GITHUB_WEBHOOK_SECRET": "development-mode",
       "GITLAB_WEBHOOK_SECRET": "development-mode",
       "BITBUCKET_WEBHOOK_SECRET": "development-mode",
       "SYNCHRONIZE_DATABASE": true,
       "SMEE_WEBHOOK_PROXY_CHANNEL": "<unique-channel-name>",
    }

    Besides these, you'll need to create the following assets:

    • GitHub OAuth app
    • GitHub App
    • Bitbucket OAuth app
    • GitLab OAuth app and fill in the server/.env.devcontainer.achievibit.json file with the relevant information.
  5. Run pnpm run start:dev to run the app in dev mode

vscode included extensions:

Extension Description
Peacock Change the color of your workspace, helpful when working on multiple projects simultaneously.
TODO Highlight Highlights TODO, FIXME, and other annotations within your code.
Auto Import Automatically adds imports for modules as you type.
CodeSnap Create screenshots of your code for documentation or sharing purposes.
Code Spell Checker Spell checking for code, comments, and strings to reduce typos.
CodeTour Record and playback guided walkthroughs of the codebase.
Conventional Commits Helps you generate commit messages that follow the Conventional Commits standard.
Docker Build, manage, and deploy containerized applications.
GitLens Supercharges the Git capabilities built into VS Code.
Code Spell Checker Hebrew Adds Hebrew language support to Code Spell Checker.
Import Cost Displays the size of the imported package inline in the editor.
Live Server Launch a local development server with live reload for static and dynamic pages.
Live Share Collaborative real-time code editing and debugging.
package.json Upgrade Easily upgrade dependencies in your package.json to the latest versions.
Path Intellisense Autocompletes filenames and file paths.
SVG Viewer Preview and edit SVG files within VS Code.
JavaScript Debugger Debug JavaScript code directly in VS Code.
PostgreSQL Client Manage and query PostgreSQL databases from within VS Code.
ESLint Integrates ESLint JavaScript into VS Code.
Stylelint Lint CSS, SCSS, Less, and other stylesheets.
GitHub Pull Requests and Issues Review and manage GitHub pull requests and issues.
Andromeda Theme A modern dark theme with vibrant colors.
Database Client Support for multiple databases via JDBC in VS Code.
Angular Language Service Rich editing and debugging for Angular templates.
Code Metrics Computes complexity metrics to help maintain code quality.
GitHub Actions Provides support for GitHub Actions workflows and YAML files.
Auto Rename Tag Automatically renames paired HTML/XML tags.
Git History View and search Git log, history, and compare commits.
Indent Rainbow Makes indentation more readable by coloring each level differently.

Development Configuration

Linting and Formatting

  • ESLint: We use ESLint for linting JavaScript, TypeScript, and HTML files, with auto-fix on save enabled for a consistent code style.
  • Stylelint: Stylelint is used for CSS, SCSS, and Less files, and default style validations are disabled to prevent conflicts.
  • Editor Settings: The editor is configured to use 2 spaces for indentation and to enforce consistent formatting across the project.

Editor Enhancements

  • Indent Rainbow: Indentation levels are color-coded to enhance code readability.
  • Spell Checker: Custom project-specific terms are added to the spell checker to reduce unnecessary warnings.

Visual Customizations

  • Theme: The Andromeda Bordered theme is used for a cohesive and visually appealing development environment.
  • Peacock: Workspace colors are customized using Peacock to easily distinguish this project from others.
  • GitLens: Certain GitLens status bar features are disabled to keep the interface clean and focused.

Run directly on local machine

  1. This project needs node 20 installed
  2. you need to install pnpm: npm install -g pnpm
  3. Run a postgres DB for the application to use
  4. Create local app config to run locally
  5. Run pnpm i and pnpm run start:dev on root folder to start both client and server applications

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Neil Kalman

💻 📖 🎨 🚧 🚇 ⚠️

O T

💻 ⚠️

Michael Dunaevsky

💻 ⚠️ 🐛

Andrea Rosales

🐛 💻

Daniel Ruf

🐛 📖

This project follows the all-contributors specification. Contributions of any kind are welcome!

Stay in touch