GitHub - sited-io/sited-project: A developer friendly Java CMS based on JAX-RS,...
source link: https://github.com/sited-io/sited-project
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
Sited CMS
A developer friendly Java CMS based on JAX-RS, Guice style DI, Bean Validation, JPA and React.
- Built for startup, provides well designed quick prototyping code base.
- More modules are coming...
Features
Frameworks
Content
Notes
OS
Windows
Linux
Mac OS
Database
MySQL
HSQL
For other databases, need to manually install the JDBC driver
Backend Console
React 16
Element UI
Support IE11+
Frontend
jQuery 1.1.12
Bootstrap 3.3.7
Support IE8+
API
Jersey
Hibernate
Hibernate Validator
Jackson
Guava
DBCP
Messaging RabbitMQ Kafaka support is under development Caching Redis
Template Engine
Provides Thymeleaf like syntax
JEXL
Modules
User
Login Page
Register Page
reset password
support role
permission management
Oauth support is under development
Page
Index Page
Category Page
Post Page
Tag Page
Archive Page
Search result page
Support drag&drop widgets to edit template
Page Index
Index Pages with Lucene
File
File browser
image scale
file upload
file download
Folder permissions similar to Linux file system is under development
Email
SMTP client
SES client
Email Template
Email Tracking
Pincode Email pincode
Captcha Simple captcha image
Getting Started
These instructions will get you a copy of the Sited CMS up and running on your local machine.
Prerequisites
- Download and install Open JDK 10 or Oracle JDK 10
- If you want to use MySQL as database. (Optional, Sited default embeds HSQL)
- Download and install MySQL.
- Create a database.
CREATE DATABASE main CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- Create a database user with schema update permission.
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON * . * TO 'user'@'localhost'; FLUSH PRIVILEGES;
Installing
- Download the package file sited-v0.9.0-beta.zip (For all platform)
- Unzip the package
- Run
./bin/sited
- Use a browser(IE11+) to open
http://localhost:8080
- Fill in the require information to setup sited.
- Choose language.
- Input app name, the name will be displayed in page title.
- Select database.
- If you want to use MySQL, input the info of database and user you created.
- Input SMTP settings.
Optional, if you skip the SMTP settings, user register will be disabled.
- Click install button. Sited will restart.
- Open
http://localhost:8080/admin/
Run Source Code
- Clone the repo
- Import as a Gradle project to Intellij IDEA or Eclipse.
- Run sited-main/src/java/Main.java
Known issues
- There will be errors in module-info.java for duplicate module java.xml.bind
- There will be errors in DAO related source codes for missing @Transactional.
It is because of Java 10 JEE split package issues. A temp fix for Intellij IDEA is:
- Open settings. Build, Execution, Deployment>Compiler>Java Compiler.
- Input the following parameters to Additional command line parameters. And replace the path of javax.transaction-api-1.3.jar.
--add-modules=java.xml.bind --patch-module java.transaction=~\.gradle\caches\modules-2\files-2.1\javax.transaction\javax.transaction-api\1.3\e006adf5cf3cca2181d16bd640ecb80148ec0fce\javax.transaction-api-1.3.jar
- The error messages are still there, but it compiles.
Code Examples
To start an App
:
public class Main {
public static void main(String[] args) throws InterruptedException {
Path dir = Paths.get(System.getProperty("user.home")).resolve(".sited");
App app = new UndertowApp(dir);
ServiceLoader.load(AbstractModule.class).forEach(app::install);
app.start();
}
}
To create a Module
:
public class TodoServiceModuleImpl extends TodoServiceModule {
@Override
protected void configure() {
//import DatabaseModule to register entity and create repository
module(DatabaseModule.class)
.entity(Task.class);
bind(TaskService.class);
//register service implementation
api().service(TaskWebService.class, TaskWebServiceImpl.class);
}
}
Release Notes
-
What's next
- Facebook integration
- Add this sharing
- GA tracking
-
0.9.0 · Beta release
- User management, supports login/register/forget password/pincode/captcha code.
- Page management, supports category/page/template/variable/components.
- File management, supports upload files, download files, scale images, react file browser.
- Basic email template support
Authors
- Chi (Xiamen, China)
If you need support for customization or commerce license, please feel free to contact me.- email
chiron.chi#gmail.com
- skype
chiron.chi#gmail.com
- wechat
sited-io
- email
See also the list of contributors who participated in this project.
Contributing
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
License
This project is licensed under the AGPL License - see the LICENSE.md file for details
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK