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
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.
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.
rails db:setup
to create and populate the database.rails server
to run the server.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.
-webkit-
) to your CSS rules. So it is not necessary for you to add these yourself. Sass Documentation.There are a few pointers that it will be helpful to know when navigating the codebase.
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 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.
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
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.
/app
- the core files that make this website happenn
/assets
- images, fonts, javascript, and css/fonts
- custom fonts for the site/images
- all images used by the site/javascripts/cms
- javascript for the atlas' content management system (cms)/javascripts/map
- javascript for the map/javascripts/info
- javascript for a few of the root pages of the website/stylesheets/cms
- sass for the atlas' content management system (cms)/stylesheets/map
- sass for the map/stylesheets/info
- sass for the home page, privacy page and statistics page./stylesheets/mail
- sass for emails that get sent to managers/controllers
- contains the classes which handle the URL endpoints that are set up in /config/routes.rb
/helpers
- extra methods that can be used in the "view" files./models
- the classes that handle access to the database./concerns
- small independent bits of functionality that are shared across multiple models/policies
- defines the rules for what actions a logged-in user can take in the site./uploaders
- configuration for different kinds of image uploads/views
- where we render html/db/migrate
- where we define changes to the database/config
- overall configurationn of the project
/locales
- translation files for every language./routes.rb
- defines the URLs that our server accepts/public
- contains files that can be accessed simply by adding their path to the end of the website's url./Gemfile
- this file defines the Ruby packages which get bundle and installed with the server.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.
If you are implementing a new feature that touches on one of these areas, please use the existing integration or library.
This is a list of some of the key libraries that are used to manage major features.
Ruby Gems:
JavaScript Libraries:
CSS Libraries:
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.