http://simple-bbs.actframework.org
The project is created to finish the coding challenge I've raised to @AutoPlus.
I've also use this project to demonstrate on the following features of ActFramework:
See https://git.oschina.net/greenlaw110/simple-bbs/issues
1 It shall allow user to register/login to the system through Github oauth service 2 It shall be able to display user's github profile 3 It shall allow user to publish a message 4 The message must have the following fields
5 It shall be able to display a message detail including title, body, author and time 6 It shall display message list 7 It shall allow author to edit message including title and body 8 It shall allow author to delete message he/she published
<li>
element. The body shall use <textarea>
elementYou must have MongoDB, JDK7+ and the corresponding JCE installed in order to play with this project. You must install maven to build the application
To build and run the app locally
mvn clean compile exec:exec
This will start the app in actframework default port: 5460
To build package for deployment
mvn clean package
This will generate a distribution package in target/dist
dir. You can scp the file to your cloud server.
To run the distribution package, unzip it and type ./run
This app require user to authenticate through GitHub OAuth service. Thus you must register your Github app.
Any OAuth app requrie the app owner to provide a callback URL. You must make sure your callback URL looks like:
http://<my-domain>/~/social/callback?provider=github
Once you registered the github application, you need to open /src/main/resources/app.properties
file and type in your app ID and secret.
Since Github allows only one callback URL, if you registered a callback URL for live demo site (like me) then it needs to do some tricks in order to get the app running on local box:
The local app start on port 5460, so you need to install a frontend http server (e.g. nginx) to direct the traffic from port 80 to 5460. Or you change the app configuration and add http.port=80
to get it start on port 80
You might need to hijack your /etc/hosts
file (C:\Windows\System32\drivers\etc\hosts
on windows) by adding the mapping from the domain in the callback URL you registered on Github to your local ip. Here is my hosts file:
127.0.0.1 localhost simple-bbs.actframework.org
This project provides some extra functions in addition to the requirements stated above
This app demonstrate how to use act-aaa to implement Authentication/Authorization/Auditing.
When user post new message or update existing message, the app will audit the action into audit
collection in the mongodb. Thus you should be able to find something like the follows:
> use bbs
switched to db bbs
> db.audit.find().pretty()
{
"_id" : ObjectId("58c4b2daaa5dcb61026fe597"),
"className" : "simple_bbs.model.Audit",
"target" : "simple_bbs.model.Message[]",
"principal" : "greenlaw110@gmail.com",
"success" : true,
"permission" : "update",
"_created" : NumberLong("1489285850015"),
"_modified" : NumberLong("1489285850015"),
"v" : NumberLong(1)
}
{
"_id" : ObjectId("58c4b2deaa5dcb61026fe598"),
"className" : "simple_bbs.model.Audit",
"target" : "simple_bbs.model.Message[]",
"principal" : "greenlaw110@gmail.com",
"success" : true,
"permission" : "update",
"_created" : NumberLong("1489285854817"),
"_modified" : NumberLong("1489285854817"),
"v" : NumberLong(1)
}
{
"_id" : ObjectId("58c4b2e7aa5dcb61026fe599"),
"className" : "simple_bbs.model.Audit",
This app provides a console command allow you to add test data. Before you start generating test data. Make sure you have at least one user in the system by open your browser navigating to the app and click on Login with Github
.
Run nc localhost 5461
(you can change nc to anything like, e.g. telnet
or putty
on windows) when the app has been started. You should see something like:
__ ___ _ _ _ _ __
(_ | |\/| |_) | |_ |_) |_) (_
__) _|_ | | | |_ |_ |_) |_) __)
powered by ActFramework v1.1.0-f544
version: ${project.version}
scan pkg: simple_bbs
base dir: /home/luog/p/greenlaw110/simple-bbs
pid: 29282
profile: dev
mode: DEV
zen: If the implementation is hard to explain, it's a bad idea.
Simple BBS[2k9b0dZP]>
Type help -a
to query application command:
Simple BBS[2k9b0dZP]>help -a
help -a
APPLICATION COMMANDS
data.gen - Generate test data
Type data.gen -h
to check how to use the command:
Simple BBS[2k9b0dZP]>data.gen -h
data.gen -h
Usage: data.gen
Generate test data
Options:
-n,--n Number of record to be generated
Shortcuts: .dg, d.g, d.gen, data.g, da.ge
Now suppose you want to generate 30 posts, type
Simple BBS[2k9b0dZP]>data.gen -n 30
data.gen -n 30
Test data generated
Simple BBS[2k9b0dZP]>
You will get the data generated.
luog@luog-Satellite-P50-A:~/p/greenlaw110/simple-bbs$ loc src
--------------------------------------------------------------------------------
Language Files Lines Blank Comment Code
--------------------------------------------------------------------------------
Java 9 395 71 43 281
HTML 5 269 24 0 245
XML 2 133 21 20 92
JavaScript 3 85 7 2 76
Batch 2 14 0 0 14
YAML 1 15 3 0 12
CSS 1 3 0 0 3
--------------------------------------------------------------------------------
Total 23 914 126 65 723
--------------------------------------------------------------------------------```
Should you have any questions, please comment below or submit an issue.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。