Nodebeats

Open Source Content Management System

  • opensource
  • cms
  • mean stack
View Website
bitsbeat

ABOUT PROJECT

Nodebeats is an Open Source Content Management System built on MEAN Stack framework.  We have developed this CMS with an objective to serve the global tech community. As BitsBeat always believes in “giving back” philosophy, Nodebeats is what we have given back to the technology world that made us what we are today. Using Nodebeats CMS the developers can build simple to advanced applications as per technology need. With the latest release of version 3.0, it has been upgraded to angular 5.0 and all the latest packages. More than 50+ website are already relying on Nodebeats and also, the global community is flourishing. Bitsbeat is planning for the major release on June 4, 2018.

Nodebeats

Nodebeats provides following features:

  • Two factor authentication
  • Token based authentication
  • Role based authorization
  • Authorization Token Management
  • Real time Google Analytics data
  • Host of options for email service providers like Mailgun, Postmark, Sendgrid, Mandrill, Google SMTP etc.
  • Integration with Cloudinary for Image management
  • Commenting system using Disqus
  • Responsive html template integration
  • And many more features that you will love to have around.

Usage

For detailed usage documentation, Check out the Nodebeats Getting Started Guide to start using Nodebeats

For api documentation, Check out the API Documentation

Installation

  • Install Node.js if not already installed

    • Recommended Node version: >= v6.10, but latest version is always better
  • Install express, gulp, angular-cli and globally in your local development machine (not mandatory but recommended)

    • npm install express gulp angular-cli -g
  • Clone the project repository

  • Go to the cloned project's root directory and install all the dependencies required for Node.js

    • cd nodebeats - to direct into the cloned project's root directory
    • npm install or yarn if installed - for installing the dependencies
  • After the root directory dependencies installation, go to admin directory from the root directory and install all the dependencies required for Angular

    • cd admin - to direct into the admin directory
    • npm install or yarn if installed - for installing the dependencies

Running Application in Development Environment

  • After the successful installation of all the required dependencies, run 'npm start' in the root and run 'npm run start:client' or 'npm run start:admin' for respective app to run in admin directory where the dependencies were installed.

Running Application in Production Environment

  • To run the application in production environment, first the angular application should be built into static files so that those files could be served from the server.

  • To generate dist files needed to run the application in production environment

    • To generate deployment package of the admin app for production type, run the following commands:

      • cd admin
      • npm run build:all or npm run build:client(for building client application only)
    • After the successful build, run the application using the command below:

      • npm run serve

Note

    username: superadmin

    password: testpassword123

Test

We have written integration tests for much of the functionality in this application. We haven't completed writing unit tests, but we are planning to write unit tests for much of the functionality in the next release phase. Your contribution in writing unit tests for this application will be hugely appreciated and welcomed.

So, to run test, first we will have to modify couple of things to make test successfull. So, let's get started:

  • First of all, we need to change the database configuration file. Navigate to lib/configs directory from your project root directory. Edit database.config.js file and in the test section, place the appropriate MongoDB credentials:
    test: {
        username: '',
        password: '',
        host: '',
        port: '',
        dbName: ''
    }
  • If you have enabled authentication for MongoDB server instance on your machine, then at first, you need to create a database and an authenticated user on the newly created database. You must do this step if you have enabled authentication in your MongoDB configuration file.

        dbUrl = "mongodb://"  + databaseConfig.test.username + ":" + databaseConfig.test.password + "@" +  databaseConfig.test.host + ":" + databaseConfig.test.port + "/" + databaseConfig.test.dbName;
    

    If you haven't enabled authentication in MongoDB server, then you need to remove the username and password from the connection url.You also need to modify the database connection url in index.js inside of test/ directory.

        dbUrl = "mongodb://" +  databaseConfig.test.host + ":" + databaseConfig.test.port + "/" + databaseConfig.test.dbName;
    
  • Now, that we have modified database configuration file, now we need to change some inputs in the test index file. So, navigate to test folder from the root of your project and then modify the index.js file.

  • You need to change the contents of imagePathUrl and documentPathUrl variable with the appropriate data. You must change these values, otherwise test will fail.

  • Once you have changed the variable contents of index.js file inside of test/ folder, you also need to modify cloudinary.setting.integration.test.js file inside of test/integrationtests/ and replace the existing coudinary config with the valid data.

       cloudinarySettingConfig = {
           cloudinaryCloudName: "nodebeatstest",
           cloudinaryApiKey: "455468798113233",
           cloudinaryApiSecret: "mrYsTL9i0fRiosjLhKbIlRA2nw0"
       };
    
  • The last thing you need to do is modify email.service.configure.integration.test.js file inside of test/integrationtests/ and replace the existing mail service configuration data with valid data.

     emailServiceConfigInfo = {
        serviceProviderType: "mailgun",
        api_Key: "key-ff32b449ddad2dsds5rd9b5dd1ff33005c79b",
        api_Secret: "api-Keyjlki98dssew34r2jklfnlrwhoiukhdsj",
        domain: "sandbox73ad601fcdd74461bdsdsr1c46820a59b2374.mailgun.org.np"
    };

Well, that's it. Now you can run test. To run the test,

  • Open two terminal windows

  • First step is to run npm run test command in one terminal window. This command will start the server and listen for client requests in test environment mode.

  • Then, run gulp test in another terminal window to run our test files.

To run the test in admin app,

  • Go to admin directory from your project root directory

    cd admin

  • Open two terminal windows

  • First step is to run npm run test command

  • For end to end testing run npm run e2e command

Some More Projects

Bitsbeat help startups to craft ultimate products that are ready to go directly for VC funding. Once the investment is done, we assist starups to onboard a team and grow faster. BankOpen and Your Story are some of the companies for whom we have build products.

node

Firstbench App

node

Autoncell

node

Oysters

YOUR DEDICATED OUTSOURCING PARTNER

Extend your Software development capacity or build an entirely new product with our experienced team of Developer and Designers,thereby reducing your time and cost to market.