sydevs / Atlas

Central database of worldwide meditation classes
6 stars 5 forks source link

About Sahaj Atlas

Rationale

Sahaj Atlas is a project to solve the persistent worldwide challenge of out-of-date and poorly presented Sahaja Yoga programs.

We've observed 3 key issues

Features

Sahaj Atlas is intended as a single database of Sahaja Yoga classes and public events worldwide. This data can be accessed either through an API or a drop-in map embed. The atlas code is divided into 5 sections, roughly corresponding to 3 key featurs.

Knowing the above features will also help one understand broadly what is going on in the code.

Browser Support

We support only the most recent versions of Chrome, Safari, Firefox, Edge, and Opera - including the mobile versions of these browsers. No other browser is officially supported. Internet Explorer is not supported.

Getting Started

Setup

Once the server is running you should be able to access the website at localhost:3000.

To login to the Content Management System (CMS), you can enter this test email address admin@example.com, then check the server log for a print out of the login email. Copy the login url from the server log into your browser to access the CMS.

Framework & Languages

Concepts

There are a few pointers that it will be helpful to know when navigating the codebase.

Models / Views / Controllers

This is a core concept of how Rails works. Models represent entries in the database. Views represent pages of the website that will be shown to users. When a user accesses a URL on the website, the controller will fetch models from the database and prepare any other data, then send that information to a view to be rendered.

Concerns

Concerns are packages of code which get added to a model or controller. This are mainly used for grouping related features that can be reused across multiple models or controllers.

Abstracted CMS Code

The entirety of the CMS rails code is heavily abstracted, because all these models are managed in almost the same patterns. As such, you wll not see the normal rails views folder structures. Instead there is just one index, show, edit, and new view for the whole CMS, and each model is rendered using partials within these views.

Similarly, each model's controller also inherits most of it's behaviour from the generic CMS::ApplicationController class

Code Structure

This is mainly useful for those who are not already familiar with Ruby on Rails. This is just a quick overview of the most important folders and files to help you find what you're looking for.

Deployment & Infrastructure

The project's servers and hosted and deployed using Heroku. Any changes which are pushed to the master branch will be automatically deployed to the production server (atlas.sydevelopers.com). If you need access to the staging server, please ask and a login will be created for you.

External Libraries and Services

If you are implementing a new feature that touches on one of these areas, please use the existing integration or library.

Libraries

This is a list of some of the key libraries that are used to manage major features.

Ruby Gems:

JavaScript Libraries:

CSS Libraries:

Services

This is a list of all external services used by the WeMeditate project.

This list is provided for reference, to help track down various parts of the site.

All accounts are managed and billed by the sydevelopers.com account.