goCore

package module
v1.8.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 2, 2023 License: MIT Imports: 28 Imported by: 0

README

GoCore

A Golang solution of tools for building a full stack web application.

Goals of the Project

Below are some targeted goals:


  • Database Goals. Provide Model/structs/ORM support and drivers for the following (for use with GoCoreFull webserver or GoCoreSuper webserver or standalone ORM):
    • Supported databases:
      • MongoDB
      • BoltDB
    • Create SQL Schema (DDL) from JSON Configuration.
      • Generated golang structs and methods will also allow customization files to be injected inside your models/v1/model package
    • Create Golang ORM packages for RDBMS Transactions & Queries.
    • Create a bootstrapping system to seed data in various configurations and data dumping formats
    • Recursive Joins with foreign and primary keys in mongo or bolt.
    • A pubsub store (core/store) for mongo or bolt to allow for interfaces to subscribe to changes in the database or to save changes to the database with either golang or a javascript client.



  • Atomic file locking functions (on many common types) for file system operations on thread safe files in github.com/DanielRenne/GoCore/core/atomicTypes package
    • Adds a Get() and Set() method with a mutex lock to the following types:
      • AtomicString
      • AtomicUInt16
      • AtomicUInt32
      • AtomicByteArray
      • AtomicFloat64
      • AtomicBoolArray
      • AtomicBool (ToggleTrue returning if changed to true)
      • AtomicInt (Add, Increment, Decrement)

Get Started with GoCore

  1. To start a new project with go modules (after go 1.13) run the following steps in a new console window. Note, this just gets all packages indirectly and they will be removed in your app as you begin to use them.
go mod init github.com/username/packageName

Read the docs and see if anything adds value to your work and go get individual packages.

Build GoCore Backend Only Webserver app

There are three options to start a webserver. GoCoreLite (just a gin-gonic server with a gorilla websocket where you pass the port you wish), GoCoreFull ( which assumes usages of our model and ORM with mongo or boltDB ), or GoCoreSuper (full front-end examples with a backend webserver).

  • GoCoreLite documentation is available here

  • GoCoreFull (backend only with minimal SSL certs, mongo and stub models) documentation is available at here

  • GoCoreSuper (react front-end and more!) documentation is available here

FAQ

Why cant I go run my main in a full GoCore application

This is because in many cases for a full GoCore web app, we need to read a webConfig.json in your current directory so that you dont compile configurations inside your main.go and developers and servers can be reconfigured without recompiling. Go will compile into a tmp directory and we dont know where your webConfig.json is located. If you really want to use go run, you can pass go run main.go $(pwd) if you dont want to compile your web server which will pass the location where you webConfig.json sits next to your main program.

If you decide not to use the web server functionality and want to try out some other helper utilities outlined in our goals, our main documentation for the codebase located here: https://pkg.go.dev/github.com/DanielRenne/GoCore

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
buildCore module
core module
app Module
app/api Module
appGen Module
atomicTypes Module
channels Module
cmdExec Module
cron Module
crypto Module
dbServices Module
debouncer Module
extensions Module
fileCache Module
ginServer Module
gitWebHooks Module
logger Module
mongo Module
path Module
pubsub Module
store Module
utils Module
workQueue Module
zip Module
Package main - used to install a process that will download the full GoCore App Template for front-end and back-end examples
Package main - used to install a process that will download the full GoCore App Template for front-end and back-end examples
modelBuild module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL