Giter VIP home page Giter VIP logo

morpheus1537 / shinycms-ruby Goto Github PK

View Code? Open in Web Editor NEW

This project forked from denny/shinycms-ruby

0.0 0.0 0.0 13.21 MB

ShinyCMS is an open-source CMS built in Ruby on Rails, with support for themes, plugins, and cloud hosting. (There is also a Perl version: www.github.com/denny/ShinyCMS)

Home Page: https://shinycms.org

License: GNU General Public License v2.0

JavaScript 1.75% Ruby 79.87% CSS 1.78% HTML 12.59% SCSS 4.00% Procfile 0.01%

shinycms-ruby's Introduction

ShinyCMS

ShinyCMS is an open-source content management system built in Ruby on Rails, with support for themes, plugins, and cloud hosting.

ShinyCMS is primarily intended for use by professional web developers, as a platform to build content-managed websites on top of. It provides a number of features 'out of the box', which all integrate into its easy-to-use admin area. Access to admin features is managed by a highly granular ACL system.

Web developers can also add custom functionality by writing their own plugins. A number of helpers and concerns are provided to help you build new features quickly, and with a consistent look-and-feel to the rest of the system.

The current version of ShinyCMS runs on Ruby 3.0 and Rails 6.1

Features

  • Plugin architecture ๐ˆ
    • Load the core plugin, plus only the feature plugins that you want to use
      • Reduces in-memory size and attackable surface area
    • Add custom functionality easily by writing your own plugins
    • Items on this list marked with ๐ˆ are provided by the core plugin
    • Items on this list marked with ยฑ are provided by one of the feature plugins
  • Themes (on the hosted site) ๐ˆ
    • Light-lift theme system - you can override just a few of the default partials if you want
    • Two themes included; Halcyonic, for content-rich sites, and Coming Soon for pre-launch sites
  • Pages ยฑ
    • Content-controlled 'brochure pages', with layout controlled by Page Templates
    • Can be organised into Page Sections (nested to any depth), with dynamically generated menus
  • Inserts ยฑ
    • Re-usable content fragments that can be pulled into any template on any page
  • News section ยฑ
  • Blog ยฑ
  • Comments ๐ˆ
    • Ready to add to any content; enabled by default on blog posts and optionally on news posts
    • Fully nested comment threads, so you can easily see who is replying to who at any level
    • Email notifications of replies to comments and posts
    • Uses reCAPTCHA to block bots, and Akismet to flag potential spam for moderation
      • Spam moderation feature sends training data back to Akismet, to improve its accuracy in future
  • Mailing lists ยฑ
    • Double opt-in, user subscription management, 'do not contact' feature
  • Newsletters ยฑ
    • HTML mailshots, generated from MJML templates for cross-platform compatibility
  • Basic form handlers ยฑ
    • e.g. 'email form data to site owner' - useful for contact and enquiry forms
    • Protected by reCAPTCHA and Akismet
  • Access control ยฑ
    • Create access groups, and add/remove members from them,
    • Use the current_user_can_access?( :group_name ) helper to show/hide content
  • Site search ยฑ
    • Ready to support multiple search backends (default is pg_search multisearch)
  • Tags ๐ˆ
  • Upvotes (AKA 'likes') on posts and comments
    • Supports downvotes too, if you want a full rating/ranking system
  • User profile pages ยฑ
    • With links to user-generated content such as recent comments, recent blog posts, etc
  • User accounts ๐ˆ
    • User administration in website admin area
    • Authentication powered by Devise
      • Uses reCAPTCHA to block registration by bots
    • ACL-based authorisation system for admin area, powered by Pundit
  • Site settings and feature flags ๐ˆ
    • Website admin area for both, plus a rake task for command-line access to feature flags
  • Sitemap generation and search-engine notification, powered by SitemapGenerator ยฑ
  • Emails can be generated from MJML or HTML templates ๐ˆ
    • Using MJML allows you to produce more reliably cross-platform HTML emails
    • Default MJML templates included for most features that send email
  • Built-in tracking of web stats and email stats
  • Build your own charts and dashboards for viewing and analyzing stats
    • Powered by Blazer
    • Default config includes a dozen useful charts and queries to get you started

Planned features

  • Payment handling plugins
    • Including recurring subscriptions to Access Groups - AKA paid membership
  • Online shop
  • Support for multiple blogs on a single site (in progress)
  • Algolia support for search plugin (in progress)
  • More themes!

Documentation

Installation and configuration

Please start by reading the installation guide (tl,dr).

Demo site

Theme templates and sample data for a demo site are provided, so you can try all of the CMS features without doing any data-entry work first. You can run the demo site locally or on a free Heroku plan.

System dependencies

You will need a webserver, a Postgres-compatible database server, and a Sidekiq-compatible caching service (e.g. Redis).

You will need a mail server if you intend to enable any of the features that send emails; user registrations, reply notifications, etc. Anything supported by ActionMailer should work.

All other supported external services are optional. If you add config details for them (in ENV / .env* files / Heroku config) then they will be used, otherwise the related CMS features will be unavailable or will have reduced functionality.

Ruby and Rails versions

ShinyCMS requires Rails 6.1 and Ruby 2.7 or later. The project generally uses the most recent stable release of both Ruby and Rails (currently Ruby 3.0.1 and Rails 6.1.3).

Contributing

Everyone is encouraged to help improve this project! Here are a few ways you can help:

  • Report issues
  • Improve the documentation
  • Fix bugs and submit pull requests
  • Suggest new features
  • Add new features :)

See contributing to ShinyCMS for more information.

Code of Conduct

This project has a Code of Conduct, which is intended to make using ShinyCMS, or contributing to it, a harassment-free experience for everybody involved - regardless of who they are and what they do or don't know.

Please read and follow the code of conduct - thank you.

Copyright and Licensing

ShinyCMS is copyright 2009-2021 Denny de la Haye - https://denny.me

ShinyCMS is free software; you can redistribute it and/or modify it under the terms of the GPL (version 2 or later). There are copies of both v2 and v3 of the GPL in docs/Licensing, or you can read them online: https://opensource.org/licenses/gpl-2.0 / https://opensource.org/licenses/gpl-3.0

ShinyCMS includes code from other open source and free software projects, which have their own licensing terms; please read the licensing docs for more details.

Current Status

CircleCI Codecov Dependabot Security

Code Climate maintainability Code Climate maintainability CodeFactor Grade CodeBeat (code quality)

GitHub code size GitHub repo size GitHub

shinycms-ruby's People

Contributors

denny avatar dependabot[bot] avatar dependabot-preview[bot] avatar paultcochrane avatar eliotsykes avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.