All Projects → casbin → Casbin Forum

casbin / Casbin Forum

Licence: apache-2.0
Next-generation forum software based on React + Golang, QQ group: 555019739

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Casbin Forum

Elune
🤔 Elune project
Stars: ✭ 26 (-92.53%)
Mutual labels:  forum, bbs
Starfire
🌟 一个分布式的内容分享讨论社区,星星之火可以燎原。
Stars: ✭ 130 (-62.64%)
Mutual labels:  forum, bbs
Symphony
🎶 一款用 Java 实现的现代化社区(论坛/问答/BBS/社交网络/博客)系统平台。A modern community (forum/Q&A/BBS/SNS/blog) system platform implemented in Java. https://ld246.com
Stars: ✭ 883 (+153.74%)
Mutual labels:  forum, bbs
Icarus
🕊️ An opensource community/forum project write with python3 aiohttp and vue.js. 一个开源的社区程序,临时测试站:https://t.myrpg.cn
Stars: ✭ 644 (+85.06%)
Mutual labels:  forum, bbs
vmoex-framework
一个开源的二次元向的社区程序。
Stars: ✭ 233 (-33.05%)
Mutual labels:  bbs, forum
Hifone
A free, open-source, self-hosted forum software based on the Laravel PHP Framework. QQ群:656868
Stars: ✭ 673 (+93.39%)
Mutual labels:  forum, bbs
Zendea
A free, open-source, self-hosted forum software written in Go 官方QQ群:656868
Stars: ✭ 116 (-66.67%)
Mutual labels:  forum, bbs
Xiunobbs
Xiuno BBS 4.0 是一款轻论坛程序。 本版修复了php7.4、php8.0兼容问题;采用utf8mb4,支持emoji;,jQuery更新到 3.5.1;bootstrap更新到4.5.0。移除部分插件,更新默认主题。
Stars: ✭ 94 (-72.99%)
Mutual labels:  forum, bbs
Roo
😋 美观大气的论坛社区
Stars: ✭ 238 (-31.61%)
Mutual labels:  forum, bbs
Symphony
🎶 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台。
Stars: ✭ 13,080 (+3658.62%)
Mutual labels:  forum, bbs
Netcorebbs
ASP.NET Core Light forum NETCoreBBS
Stars: ✭ 483 (+38.79%)
Mutual labels:  forum, bbs
Jivejdon
Jivejdon is a Domain Driven Design appication with CQRS/ES/Clean/Hexagonal architecture
Stars: ✭ 287 (-17.53%)
Mutual labels:  forum, bbs
Forum
一个简单的论坛项目,开发IDE为IntelliJ IDEA,通过Maven构建,后台采用Spring、SpringMVC、MyBatis,数据库采用MySQL、Redis,前台用到jQuery,图片被上传到七牛云。
Stars: ✭ 407 (+16.95%)
Mutual labels:  forum, bbs
Bbs
巡云轻论坛系统包含论坛、问答模块。系统采用JAVA+MYSQL架构,自适应手机端和电脑端,界面简洁,性能高效。数据库表结构设计使用分表方案,提高系统的负载能力。后台数据库备份/还原、全站指定目录打包、一键自动升级等功能使维护简单方便。系统拥有强大的模板管理功能,布局版块支持设置输出条件,让前端页面展示方便快捷。
Stars: ✭ 712 (+104.6%)
Mutual labels:  forum, bbs
Forum Java
一款用 Java(spring boot) 实现的现代化社区(论坛/问答/BBS/社交网络/博客)系统平台。A modern community (forum/Q&A/BBS/SNS/blog) system platform implemented in Java(spring boot).
Stars: ✭ 380 (+9.2%)
Mutual labels:  forum, bbs
Vmoex Framework
一个开源的二次元向的社区程序。
Stars: ✭ 198 (-43.1%)
Mutual labels:  forum, bbs
superhighway84
USENET-inspired, uncensorable, decentralized internet discussion system running on IPFS & OrbitDB
Stars: ✭ 437 (+25.57%)
Mutual labels:  bbs, forum
Ditiezu
Ditiezu
Stars: ✭ 13 (-96.26%)
Mutual labels:  bbs, forum
Ironinfoweapp
铜陵回归物资有限公司支持, 钢材信息小程序(基于uni-app), 后台账密: tour, tour520
Stars: ✭ 257 (-26.15%)
Mutual labels:  casbin
Go Admin
go web api,包含gin+gorm+jwt+rbac等。
Stars: ✭ 298 (-14.37%)
Mutual labels:  casbin

Casbin-forum

Casbin-forum is the official forum for Casbin developers and users.

Link

https://forum.casbin.com/

Architecture

Casbin-forum contains 2 parts:

Name Description Language Source code
Frontend Web frontend UI for Casbin-forum Javascript + React https://github.com/casbin/casbin-forum/tree/master/web
Backend RESTful API backend for Casbin-forum Golang + Beego + MySQL https://github.com/casbin/casbin-forum

Installation

  • Get the code:

    go get github.com/casbin/casbin-forum
    

    or

    git clone https://github.com/casbin/casbin-forum
    
  • Custom settings: Casbin-forum currently allows some user-defined items, and the customized files are located in web/src/main/custom/.

    Customizable option:

    • Logo, include forum Logo and organization Logo which organization by web/src/main/custom/logo.css
  • Setup database:

    Casbin-forum will store its users, nodes and topics informations in a MySQL database named: casbin_forum, will create it if not existed. The DB connection string can be specified at: https://github.com/casbin/casbin-forum/blob/master/conf/app.conf

    dataSourceName = root:[email protected](localhost:3306)/
    

    Casbin-forum uses XORM to connect to DB, so all DBs supported by XORM can also be used.

  • Setup your forum to enable some third-party login platform:

    Casbin-forum provide a way to sign up using Google account, Github account, WeChat account and so on, so you may have to get your own ClientID and ClientSecret first.

    1. Google

      You could get them by clicking on this url: https://console.developers.google.com/apis You should set Authorized JavaScript origins to fit your own domain address, for local testing, sethttp://localhost:3000. And set the Authorized redirect URIs, the same domain address as before, add /callback/google/signup and /callback/google/link after that, for local testing, sethttp://localhost:3000/callback/google/signup + http://localhost:3000/callback/google/link.

    2. Github

      You could get them by clicking on this url: https://github.com/settings/developers You should set Homepage URL to fit your own domain address, for local testing, sethttp://localhost:3000. And set the Authorization callback URL, the same domain address as before, add /callback/github after that, for local testing, sethttp://localhost:3000/callback/github.

    And to improve security, you could set a state value determined by yourself to make sure the request is requesting by yourself, such as "random". Those information strings can be specified at: https://github.com/casbin/casbin-forum/blob/master/conf/app.conf

    GoogleAuthClientID = "xxx" //your own client id
    GoogleAuthClientSecret = "xxx" //your own client secret
    GoogleAuthState = "xxx" //set by yourself
    GithubAuthClientID = "xxx" //your own client id
    GithubAuthClientSecret = "xxx" //your own client secret
    GithubAuthState = "xx" //set by yourself, we may change this to a random word in the future
    

    You may also have to fill in the same information at: https://github.com/casbin/casbin-forum/blob/master/web/src/Conf.js. By the way, you could change the value of scope to get different user information form them if you need, we just take profile and email.

    export const GoogleClientId  = "xxx"
    
    export const GoogleAuthState  = "xxx"
    
    export const GoogleAuthScope  = "profile+email"
    
    export const GithubClientId  = "xxx"
    
    export const GithubAuthState  = "xxx"
    
    export const GithubAuthScope  = "user:email+read:user"
    
    1. QQ

      Before you begin to use QQ login services, you should make sure that you have applied the application at QQ-connect

    Configuration:

    export const QQClientId  = ""
    
    export const QQAuthState  = ""
    
    export const QQAuthScope  = "get_user_info"
    
    export const QQOauthUri = "https://graph.qq.com/oauth2.0/authorize"
    
    QQAPPID = ""
    QQAPPKey = ""
    QQAuthState = ""
    
    1. WeChat

      Similar to QQ login service, before using WeChat to log in, you need to apply for OAuth2.0 service fee on the WeChat open platform open weixin. After completing the configuration, you can log in via WeChat QR code.

    Configuration:

    export const WechatClientId  = ""
    
    export const WeChatAuthState = ""
    
    export const WeChatAuthScope = "snsapi_login"
    
    export const WeChatOauthUri = "https://open.weixin.qq.com/connect/qrconnect"
    
    WeChatAPPID = ""
    WeChatKey = ""
    WeChatAuthState = ""
    

    We would show different login/signup methods depending on your configuration.

  • OSS, Mail, and SMS services.

    We use Ali OSS, Ali Mail, and Ali SMS to save the user's pictures, send emails to users and send short messages to users.

    You could use another OSS, Mail, and SMS services, we separate those functions from main code, you could found those functions at https://github.com/casbin/casbin-forum/tree/master/service

    We would mainly use Ali services for example in the next.

    Information in Conf.js

    export const OSSRegion = "" //your oss region
    
    //The endpoint of your oss region, find it on https://help.aliyun.com/document_detail/31837.html
    export const OSSEndPoint = "" //your oss end point
    
    export const OSSBucket = "" //your oss bucket
    
    //The path stored in your oss
    //eg: `casbin-forum` or `casbin/forum/xxx/xxx`
    export const OSSBasicPath = "" //prefix for saved pictures 
    
    //If you set a custom domain name in ali-oss bucket, please fill in.
    export const OSSCustomDomain = ""
    

    Information in app.conf. You could get your roleArn in https://ram.console.aliyun.com/roles. Before that, you should have an independent account for this application, and add corresponding permissions. Such as:

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "oss:PutObject",
                    "oss:GetObject",
                    "oss:AbortMultipartUpload",
                    "oss:DeleteObject"
                ],
                "Resource": [
                    "acs:oss:*:*:yourbucket",
                    "acs:oss:*:*:yourbucket/*"
                ]
            }
        ],
        "Version": "1"
    }
    

    By the way, you should set your bucket permissions to public read.

    accessKeyID     = ""
    accessKeySecret = ""
    roleArn         = ""
    OSSCustomDomain = ""
    OSSBasicPath = ""
    OSSRegion = ""
    OSSEndPoint = ""
    OSSBucket = ""
    SMSSignName = ""
    SMSTemplateCode = ""
    mailUser = ""
    mailPass = ""
    mailHost = ""
    mailPort = ""
    
  • Github corner

    We added a Github icon in the upper right corner, linking to your Github repository address. You could set ShowGithubCorner to hidden it.

    Configuration:

    export const ShowGithubCorner = true
    
    export const GithubRepo = "https://github.com/casbin/casbin-forum" //your github repository
    
  • Run backend (in port 7000):

    go run main.go
    
  • Run frontend (in the same machine's port 3000):

    cd web
    ## npm
    npm install
    npm run start
    ## yarn
    yarn install
    yarn run start
    
  • Open browser:

    http://localhost:3000/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].