Background Image
Cristian Care Project

It aims to give a free and open-source Web Software to whom want to manager its congregant also as a community of IT Servants of God`s Kingdom.

This site contains four kind of information:

  • First one related to HOW TO INSTALL AND USE;
  • The second is about HOW TO MAINTAIN (OR EXPAND) ITS SOURCE-CODE; and
  • The third one is HOW TO SUPPORT AND COLLABORATE WITH THE PROJECT
  • The final one is HOW TO CONTACT US

Fell free to navigate among these information or contact us for more information.

How to Install
If you just want to have a Software to support your Church Management
How to Maintain
If you are a Developer and want to change or expand something
How to Collaborate
If you want to donate once, twice or support us on spreading this free software
Contact
If you are someone who want to participate deeply or understand a bit more about the Project

Snippets

Start Menu Data Home Page Extended

How to Install

To install it Follow these instructions

  1. First, download and install [Node.js] :(Click here)
  2. Second, download our [Distribution Version] :(Click here)
  3. According your Operational System (Windows, Linux, Unix, Mac OS, et all), do set the Environment Variables below: (Click here to know how to do it)
                                    
    # Are you running as [production] or [development]?
    NODE_ENV=production
    # Where (domain) will your server run?
    BASE_URL=http://localhost
    # Which server port should be exposed?
    SERVER_PORT=80
    # Who will send emails from Application to clients?
    FROM_EMAIL_ADDRESS=no_reply@example.com
    # How sender want to be recognized?
    FROM_NAME=The Cristan Care`s Team
    # Who will receive customer support emails?
    INTERNAL_EMAIL_ADDRESS=support+development@example.com
    # Brand new emails should be validated [true] or [false]?
    VERIFY_EMAIL_ADDRESS=false
    # To receive payments - you should create an 'https://stripe.com/' account
    STRIPE_PUBLISHABLE_KEY=k_test_Zzd814nldl91104qor5911gjald
    STRIPE_SECRET=sk_test_Zzd814nldl91104qor5911gjald
    # To send emails - you should create an 'https://sendgrid.com' account
    SENDGRID_SECRET=sk_prod__fake_Nfgh82401348jaDa3lkZ0d9Hm
    # Which kind of database adapter must to be used [sails-disk], [sails-mongo], [sails-mysql]...
    # https://sailsjs.com/documentation/concepts/extending-sails/adapters/available-adapters
    DATASTORE_ADAPTER=sails-disk
    DATASTORE_URL=mysql://user:password@host:port/database
    # Is it a MONGO_DB NO-SQL database?
    IS_MONGO_DB=false
    # The unique Encryption Key for the application
    DATA_ENCRYPTION_KEYS_DEFAULT=ffliOnsljHYX05U58V5AkDXHqMT+bTlVOKT+Q0LUpcA=
                                    
                                
  4. Update your libraries with [npm install] at shell command
    
    $ npm install
    
                                        
  5. If you want to run as Docker Container, do read DOCKER.md file for more information.
  6. If you want to run as Standalone Server, type [node app.js] or [npm start] at shell command
                                    
                                        $ node app.js
                                    
                                
  7. It is enough to run your application. If everything is ok, you will see the app running at http://server:port/
Install

How to Maintain

Cristian Care is a FullStack Web JavaScript Software developed with Sails.js framework

If you want to mantains this software you should learn Sails.js first, but JavaScripts experts.

Basic instructions to get you acquainted with this technology (Click here)

To download from GitHub Repository Click here

During maintenance process you should find somethig like...

                    
/**
 * Route Mappings
 * (sails.config.routes)
 *
 * Your routes tell Sails what to do each time it receives a request.
 *
 * For more information on configuring custom routes, check out:
 * https://sailsjs.com/anatomy/config/routes-js
 */

module.exports.routes = {

  //  ╦ ╦╔═╗╔╗ ╔═╗╔═╗╔═╗╔═╗╔═╗
  //  ║║║║╣ ╠╩╗╠═╝╠═╣║ ╦║╣ ╚═╗
  //  ╚╩╝╚═╝╚═╝╩  ╩ ╩╚═╝╚═╝╚═╝
  'GET /':                   { action: 'view-homepage-or-redirect' },
  'GET /welcome/:unused?':   { action: 'dashboard/view-welcome' },

  'GET /faq':                { action:   'view-faq' },
  'GET /legal/terms':        { action:   'legal/view-terms' },
  'GET /legal/privacy':      { action:   'legal/view-privacy' },
  'GET /contact':            { action:   'view-contact' },

  'GET /signup':             { action: 'entrance/view-signup' },
  'GET /email/confirm':      { action: 'entrance/confirm-email' },
  'GET /email/confirmed':    { action: 'entrance/view-confirmed-email' },

  'GET /login?restricted=false':              { action: 'entrance/view-login' },
  'GET /password/forgot':    { action: 'entrance/view-forgot-password' },
  'GET /password/new':       { action: 'entrance/view-new-password' },

  'GET /account':            { action: 'account/view-account-overview' },
  'GET /account/password':   { action: 'account/view-edit-password' },
  'GET /account/profile':    { action: 'account/view-edit-profile' },




                        
                    
Customize

The basic working on concepts about a Sails.js application you need to know (for while) is:

  • The backend server have to be running, and you should know this server address and port
  • The browser (i.e. Google Chrome) should be able to request a page from server/port
  • So, browsers will request a page and backends will check if the given path (i.e. localhost:8080/faq) exists
  • If does it exist, backend will check if there is a logged user and if there are routes to grant user access
  • No authentication or policy restriction were find, so the 'api/controller/controller-name.js' (as router.js definitions) will be load
  • If some data should be taken from datastore, the loaded controller will perform it and wait for answers
  • After loading and running that controller, backend will return a data or a rendered EJS page to the browser.
Workflow

So, to find where to start maintenance effort:

  • Do find the backend path requested
  • Locate it into config/routes.js file
  • Look for restrictions at config/policies.js file
  • Open and edit related controller file (i.e. /api/controllers/view-faq.js file).

If your research tells you should maintain a view (or *.ejs) file:

  • Look at controller file and try to locate the view used by controller (i.e. viewTemplatePath: 'pages/faq')
  • Open /views/pages/[name].ejs files to find which component will be changed by you
  • Open /assets/js/pages/[name].page.js files to find which Vue2 Framework data will also be changed by you

If your maintenance was at *.ejs or *.page.js files only, just reload the page at Browser.

If your maintenance was at *.js files, You have to restart all application to see them working.

How to Collaborate
Customize

You can...

  • Create an account and subscribe our STRIPE plans to keep it a free solution for the entire world Clicking here
  • No account, just help our support team to maintain this site and git repository by PAYPAL donating of $560BRL/year Clicking here
  • No account, no STRIPE or PAYPAL, just donate any value to our partner ChurchChurch Bank Accounts
  • No payment, but just pray for us, because it was made to bless.

You also can...

  • Join us on developing at Git Hub
  • Help others by installing or managing it at Cristian Care Forum
  • By Proposing new features or bug fixes at Contact Form
  • Promoting it by spreading this site link ahead.