No description
Find a file
Snider 1f87ec75d1 (#15) feat(openpgp): increase test coverage
Adds new tests to the `pkg/crypt/openpgp` package to cover error handling and edge cases in the `EncryptPGP` and `DecryptPGP` functions.
2025-10-30 23:24:53 +00:00
.github/workflows (#10) GitHub Actions workflow and refactor build and test infrastructure 2025-10-30 16:23:00 +00:00
cmd (#10) GitHub Actions workflow and refactor build and test infrastructure 2025-10-30 16:23:00 +00:00
config Refactor services and tests: update Config, Workspace, Display, and cryptography modules; add test-gen and PWA build support; improve workspace test utilities and mock implementations; and enhance file handling logic. 2025-10-28 21:42:29 +00:00
crypt Refactor services and tests: update Config, Workspace, Display, and cryptography modules; add test-gen and PWA build support; improve workspace test utilities and mock implementations; and enhance file handling logic. 2025-10-28 21:42:29 +00:00
display Refactor services and tests: update Config, Workspace, Display, and cryptography modules; add test-gen and PWA build support; improve workspace test utilities and mock implementations; and enhance file handling logic. 2025-10-28 21:42:29 +00:00
docs Add documentation for Core modules: Config, Crypt, Display, Docs, IO, and Workspace (#3) 2025-10-27 03:14:50 +00:00
help Refactor services and tests: update Config, Workspace, Display, and cryptography modules; add test-gen and PWA build support; improve workspace test utilities and mock implementations; and enhance file handling logic. 2025-10-28 21:42:29 +00:00
i18n Refactor services and tests: update Config, Workspace, Display, and cryptography modules; add test-gen and PWA build support; improve workspace test utilities and mock implementations; and enhance file handling logic. 2025-10-28 21:42:29 +00:00
pkg (#15) feat(openpgp): increase test coverage 2025-10-30 23:24:53 +00:00
workspace Refactor services and tests: update Config, Workspace, Display, and cryptography modules; add test-gen and PWA build support; improve workspace test utilities and mock implementations; and enhance file handling logic. 2025-10-28 21:42:29 +00:00
.gitignore Refactor PGP module with helper functions and error handling title (#8) 2025-10-30 14:18:37 +00:00
core.go Add documentation for Core modules: Config, Crypt, Display, Docs, IO, and Workspace (#3) 2025-10-27 03:14:50 +00:00
core_test.go Add options type to Config service and improve type assignment error handling; add unit tests for Config functionality 2025-10-28 11:09:38 +00:00
go.mod Add documentation for Core modules: Config, Crypt, Display, Docs, IO, and Workspace (#3) 2025-10-27 03:14:50 +00:00
go.sum Add documentation for Core modules: Config, Crypt, Display, Docs, IO, and Workspace (#3) 2025-10-27 03:14:50 +00:00
go.work Refactor service documentation to standardize naming conventions and improve clarity 2025-10-28 12:06:24 +00:00
go.work.sum Refactor services and tests: update Config, Workspace, Display, and cryptography modules; add test-gen and PWA build support; improve workspace test utilities and mock implementations; and enhance file handling logic. 2025-10-28 21:42:29 +00:00
LICENSE.txt Add initial project structure with core functionality and basic files 2025-10-24 04:55:10 +01:00
Makefile Add pre-commit task, CLI enhancements, and ATS updates 2025-10-27 05:41:11 +00:00
README.md (#12) Add GitHub Actions test coverage and platform-aware Taskfiles 2025-10-30 17:37:48 +00:00
Taskfile.yml (#10) GitHub Actions workflow and refactor build and test infrastructure 2025-10-30 16:23:00 +00:00

Core

Core is a Web3 Framework, written in Go using Wails.io to replace Electron and the bloat of browsers that, at their core, still live in their mum's basement.

More to come, follow us on Discord http://discord.dappco.re

Repo: https://github.com/Snider/Core

Quick start

import core "github.com/Snider/Core"

app := core.New(
  core.WithServiceLock(),
)

Development Workflow

This project follows a Test-Driven Development (TDD) approach. We use Task for task automation to streamline the development process.

The recommended workflow is:

  1. Generate Tests: For any changes to the public API, first generate the necessary test stubs.

    task test-gen
    
  2. Run Tests (and watch them fail): Verify that the new tests fail as expected.

    task test
    
  3. Implement Your Feature: Write the code to make the tests pass.

  4. Run Tests Again: Ensure all tests now pass.

    task test
    
  5. Submit for Review: Once your changes are complete and tests are passing, submit them for a CodeRabbit review.

    task review
    

Project Structure

The project is organized into the following main directories:

  • pkg/: Contains the core Go packages that make up the framework.
  • cmd/: Contains the entry points for the two main applications:
    • core-gui/: The Wails-based GUI application.
    • core/: The command-line interface (CLI) application.

Prerequisites

Building and Running

GUI Application

To run the GUI application in development mode:

task gui:dev

To build the final application for your platform:

task gui:build

CLI Application

To build the CLI application:

task cli:build

The executable will be located in the cmd/core/bin directory.

Available Tasks

To run any of the following tasks, open your terminal in the project's root directory and execute the task command.

General Tasks

  • task test: Runs all Go tests recursively for the entire project.
  • task test-gen: Generates tests for the public API.
  • task check: A comprehensive check that runs go mod tidy, the full test suite, and a CodeRabbit review.
  • task review: Submits the current changes for a CodeRabbit review.
  • task cov: Generates a test coverage profile (coverage.txt).
  • task cov-view: Opens the HTML coverage report in your browser.
  • task sync: Updates the public API Go files to match the exported interface of the modules.

GUI Application (cmd/core-gui)

These tasks are run from the root directory and operate on the GUI application.

  • task gui:build: Builds the GUI application.
  • task gui:package: Packages a production build of the GUI application.
  • task gui:run: Runs the GUI application.
  • task gui:dev: Runs the GUI application in development mode, with hot-reloading enabled.

CLI Application (cmd/core)

These tasks are run from the root directory and operate on the CLI application.

  • task cli:build: Builds the CLI application.
  • task cli:build:dev: Builds the CLI application for development.
  • task cli:run: Builds and runs the CLI application.
  • task cli:sync: Updates the public API Go files.
  • task cli:test-gen: Generates tests for the public API.

Docs (MkDocs)

The help site and inapp docs are built with MkDocs Material and live under pkg/v1/core/docs.

  • Live preview: from pkg/v1/core/docs run
    • pip install -r requirements.txt
    • mkdocs serve -o -c (or task dev if you use Task)
  • Build static site: mkdocs build --clean -d public (or task build)

The demo app embeds the built docs from public/ and can open specific sections in new windows using stable, short headings.