Skip to content
This repository has been archived by the owner on Mar 6, 2023. It is now read-only.

streetbyters/forgolang_forum

Repository files navigation

forgolang

Forgolang.com's open-source discussion forum system.
But you can also use it as a small framework. :)

Roadmap

  • Core system
  • Authorization system integration
  • All modules integrations (category, posts, chat)
  • Notification system integration
  • CI/CD Tools integration

***Switching to DDD architecture. It will work soon and a more streamlined development environment will be released.

That's all for now. :)

Requirements

  • Go > 1.11.x
  • PostgreSQL
  • Redis
  • RabbitMQ
  • Elasticsearch 7.x

Development

git clone -b develop https://github.com/streetbyters/forgolang_forum

go mod vendor

go run ./cmd -genSecretEnv

# Development Mode
go run ./cmd -mode dev -migrate -reset
go run ./cmd -mode dev

# Test Mode
go run ./cmd -mode test -migrate -reset
go run ./cmd -mode test

Tasks

If you have added a new API endpoint.

go run ./cmd -mode dev -task -name GenerateRolePermissions

Add Task

Create task file on tasks directory. On the bottom you can also see the sample task function.

package tasks

import "forgolang_forum/cmn"

// ExampleTask for forgolang_forum
func ExampleTask(app *cmn.App, args ...interface{}) {
    app.Logger.LogInfo("Example Task")
}

After creating the task file, define the task to the task section in the cmd/main.go file.

package main

func main() {
    ...
    // Tasks
    _ts["ExampleTask"] = tasks.ExampleTask
    // Tasks
    ...
}

Finally, call the task from the command line.

go run ./cmd -mode dev -task -name ExampleTask

Integrations

Contribution

I would like to accept any contributions to make Forgolang.com better and feature rich.
See detail

LICENSE

Copyright 2019 StreetByters Community

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.