goCore

package module
v1.5.1 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2022 License: MIT Imports: 27 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 (only for use with GoCore full apps):
    • 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 yourProject/packageName

If you want to just play with all packages run:

`go get github.com/DanielRenne/GoCore`

Otherwise 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 GoCoreCreateApp (full front-end examples with a backend webserver).

  • GoCore full docs are available at here

  • GoCoreLite full docs are available here

  • GoCoreCreateApp full docs are available here

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
Package core is the main package contents of the GoCore application collection of packages and utilities Also the root contains some debugging/dumping variable functions
Package core is the main package contents of the GoCore application collection of packages and utilities Also the root contains some debugging/dumping variable functions
app
Package app is a package that contains the core functionality of the GoCore framework and websocket functionality
Package app is a package that contains the core functionality of the GoCore framework and websocket functionality
app/api
Package api provides an API router and controller Registry to route controller api's.
Package api provides an API router and controller Registry to route controller api's.
appGen
Package appGen internal only to scaffold applications running GoCore
Package appGen internal only to scaffold applications running GoCore
atomicTypes
Package atomicTypes provides object locking / unlocking for setting and getting.
Package atomicTypes provides object locking / unlocking for setting and getting.
channels
Package channels provides a simple way to wait for a signal in a thread-safe manner
Package channels provides a simple way to wait for a signal in a thread-safe manner
cron
Package cron contains cron jobs and other logging functions
Package cron contains cron jobs and other logging functions
crypto
Package provides some basic DES_CBC or CBC_PKCS7 encryption and decryption functions.
Package provides some basic DES_CBC or CBC_PKCS7 encryption and decryption functions.
dbServices
Package dbServices provides a set of extensions for database utilities and ORM generation
Package dbServices provides a set of extensions for database utilities and ORM generation
dbServices/bolt/stubs
Package boltStubs - Internal Stub templates for bolt struct/ORM generation
Package boltStubs - Internal Stub templates for bolt struct/ORM generation
dbServices/common/stubs
Package commonStubs - Internal Stub templates for bolt/mongo struct/ORM generation
Package commonStubs - Internal Stub templates for bolt/mongo struct/ORM generation
dbServices/mongo/acct
Package acct - Internal Stub
Package acct - Internal Stub
dbServices/mongo/stubs
Package mongoStubs - Internal Stub templates for mongo struct/ORM generation
Package mongoStubs - Internal Stub templates for mongo struct/ORM generation
extensions
Package extensions provides a set of functions to work with files, directories, and converting data types
Package extensions provides a set of functions to work with files, directories, and converting data types
fileCache
Package fileCache will provide simple file content caching tools for in-Memory access to files.
Package fileCache will provide simple file content caching tools for in-Memory access to files.
ginServer
Package ginServer contains the gin server and ginServer helper functions
Package ginServer contains the gin server and ginServer helper functions
gitWebHooks
package gitWebHooks - deprecated use git actions instead
package gitWebHooks - deprecated use git actions instead
httpExtensions
Package httpExtensions provides a set of extensions for HTTP utilities
Package httpExtensions provides a set of extensions for HTTP utilities
logger
Package logger provides a simple logging package for GoCore.
Package logger provides a simple logging package for GoCore.
mongo
Package mongo contains a helper function for ensuring mongo is up or down
Package mongo contains a helper function for ensuring mongo is up or down
path
Package path provides basic path functions for OS specific path folder names and a function to get the base path of where the binary resides
Package path provides basic path functions for OS specific path folder names and a function to get the base path of where the binary resides
pubsub
Package pubsub provides simple pub/sub functionality for people who register on a given topic, functions will be called back in a thread-safe manner
Package pubsub provides simple pub/sub functionality for people who register on a given topic, functions will be called back in a thread-safe manner
serverSettings
Package serverSettings provides a global object for storing server settings or local GoCore configurations for package usages Most of this is used with GoCore full mode.
Package serverSettings provides a global object for storing server settings or local GoCore configurations for package usages Most of this is used with GoCore full mode.
store
Package store provides internal interfaces for dbServices and models to publish out changes
Package store provides internal interfaces for dbServices and models to publish out changes
utils
Package utils provides a set of helper functions for your application
Package utils provides a set of helper functions for your application
zip
Package zip provides support for compressing and decompressing zip files.
Package zip provides support for compressing and decompressing zip files.
cmdExec module
debouncer module
workQueue 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
cmd Deprecated.
cmd Deprecated.

Jump to

Keyboard shortcuts

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