Giter Site home page Giter Site logo

material-cms / material-cms Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 2.0 8.81 MB

Material CMS - Ultra fast CMS with material design & reusable widgets.

Home Page: https://material-cms.com/

License: Other

JavaScript 64.14% Shell 1.13% HTML 23.14% Dockerfile 0.03% Less 11.55%
cms-framework materialize-components materializecss material-design material-cms apostrophe nodejs javascript

material-cms's Introduction

Logo

Material CMS

The ultimate website builder for everyone from self-employed to business or enterprise, Material-CMS is easy to use, fast, secure. You can present content in extremely diverse ways, through its reusable content. No templates needed redesign your website in minutes without losing the speed of a static page.
Website

Demo · Report Bug

Material CMS

  • Ultra fast
  • Secure
  • Business ready
  • Lighthouse maximum
  • Easy to use
  • Extremely versatile
  • Realtime JS
  • Extensible through plugins
  • Developer friendly
  • Galleries with JQuery append AJAX

Google Lighthouse

Screenshot

Compatible Plugins Apostrophe

You can use all plugins from apostrophe cms

Apostrophe CMS Extensions.

Installing instructions

Install Dependencies

  • git
  • nodejs 16.x or higher
  • redis-server
  • mongodb
  • imagemagick
# clone repository
git clone https://github.com/felixlberg/material-cms
# cd into the new project
cd material-cms
# Install dependencies
npm install
# Copy local.example.js to data and add a individual session secret to be able to login
cp local.example.js data/local.js
# Replace USERNAME with your individual name and add it to admin group; prompts for password
node app.js apostrophe-users:add USERNAME admin
# Go go go!
npm start
# Open Browser "http://localhost:3000/login" to login with your user to add content

Production

For server specific changes add the file data/local.js. You will find an example under local.example.js in root directory.

# Copy file
cp local.example.js data/local.js

Change baseUrl and add a session secret. Modify the file accoring to your wishes, remove modules that you don't need:

// Settings specific to this server. Change the URL
// if you are deploying in production.
module.exports = {
  baseUrl: 'http://localhost:3000',
  modules: {
    // Minify Html
    'apostrophe-templates': {
      minify: (process.env.ENV === 'prod') // minify: true
    },
    // Minify Assets
    'apostrophe-assets': {
      minify: (process.env.ENV === 'prod') // minify: true
    },
    // Set a Secre for your Session
    // https://docs.apostrophecms.org/howtos/storing-sessions-in-redis.html#what-about-caches
    'apostrophe-express': {
      session: {
        secret: 'YOUR_SECRET'
      }
      // use other port than 3000
      // port: 3001
    },
    // Email Settings for nodemailer
    'apostrophe-email': {
      nodemailer: {
        host: 'SMTP_SERVER', // or use: process.env.SMTP_SERVER
        port: 587,
        secure: false,
        auth: {
            user: 'SMTP_USER', // or use: process.env.SMTP_USER
            pass: 'SMTP_PW' // or use: process.env.SMTP_PW
        }
      }
    },
    // Apostrophe has full-text search capabilities built set searched pages here
    // https://docs.apostrophecms.org/core-concepts/apostrophe-search/search.html
    'apostrophe-search': {
      // types: [
      //   'home'
      // ]
    },
    // Add parked page for search functions. Parked pages
    // configures certain pages to be automatically created
    // and refreshed whenever the site starts up.
    'apostrophe-pages': {
      // park: [
      //   {
      //     title: 'Search',
      //     slug: '/search',
      //     type: 'apostrophe-search',
      //     label: 'Search',
      //     published: true
      //   }
      // ]
    },
    // If these are your db settings then you don't need to be explicit. If not
    // you can uncomment this and get more specific.
    'apostrophe-db': {
      // uri: 'mongodb://localhost:27017/apostrophe-sandbox'
      // There is legacy support for host, port, name, user and password options,
      // but this is not necessary. They can all go in the uri option like this:
      // mongodb://user:password@host:port/dbname
    }
  }
};

Development

Materialize components ES6

Materialize is written in ECMAScript 6. The version of Uglify in use in Apostrophe 2.x does not necessarily support ES6 syntax! So if you want to add new materialize components you need to run npm build in project folder and copy the desired files from the created build folder to lib/apostrophe-assets/vendor/materialize/components.


For documentation on Apostrophe CMS, visit Apostrophe CMS.

For more infos about Materialize , visit Materialize.

material-cms's People

Contributors

felixlberg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

material-cms's Issues

Fullpage initialization breaks

Sadly the fullpage initialization breaks when you save an image or other page settings possible by the callbacks defined in this function and its static rendering by apostrophe-assets. This doesn't impact the System but it makes it necessary to reload the page what shouldn't be happen async. CMS. even for admin.

possible solution would be integrating full-page initialization async.

Chrome Glitchy behavior

I've tested many many different fullpage scroll solutions and I ended up writing own one but glitchy scroll behavior seems for me not solvable right now. So I ended up to load normal scroll for chrome. So if anybody know how to solve the Chrome glitchy scroll problematic I appreciate that!

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.