People have asked us about how to scale up Anahita for hundreds of thousands or more users, also about a micro-services version of Anahita. No cloud application can by default scale up to a large number of users. Traditionally, Software-as-a-service or SAAS projects achieved this by throwing hardware and computing power at their production server. Today they use a dev-ops and release engineering infrastructure.
Two common technologies that we can use today are Docker and Kubernetes. Docker allows us to run Anahita, MySql Database, and other parts of a setup in individual containers. A group of Docker containers that communicate with each other is a cluster of containers. At the moment, Anahita is a monolith application. We want to move towards a micro-services architecture. In this article, I want to outline the first few changes that could make this leap happen.
Moving towards a client-services archite...
We just tagged this release on Github. It doesn't provide any new features, but some significant changes in the core framework has happened that are essential for those of you who are building custom applications for Anahita.
We have merged all the parts that we were using from the legacy Nooku and Koowa frameworks and removed most of the unused code. This has made the Anahita framework API consistent everywhere. So basically:
We just reached an important milestone for Anahita. All the Nooku Koowa code which was being used are merged with the Anahita framework and most of the unused code has been removed.
Our framework is now nice and consistent and no more confusions between "K" and "An" prefixes as well as "koowa" and "anahita" identifiers. Now all the class prefixes are "An" and wherever we had "koowa" it is "anahita".
This release will be tagged version 4.4 because all your custom apps need to be updated to accommodate the recent changes.
Our special thanks to the Nooku team for we couldn't have made it this far without their framework.
Now while we're at it, could you please test installing from the master branch and let me know if everything is working properly? Thank you!
I started an article reflecting on Anahita's history and goals. It was supposed to be just a paragraph, but it grew to become an independent blog post. Apparently, I like to ramble on when it gets to talking about Anahita. You can find the published article here:
TL;DR after building a learning management system for an old-school education company, I was inspired to build a more democratic and distributed online learning and knowledge sharing platform. I left my job, focused on my new company, grew a team, got down to coding. At the time we thought social networking was the solution to all humanity's ailments, but then alternative facts, click-bait content, and extremist ideas started spreading around on mega giant social media. After some reflection, we decided to focus on building tools for open science and data. Our goal is to make Anahita the lightest viable unit required to set up a knowledge sharing and collaboration platform. We want brutal minimali...
It's been a while since I've written about the direction to which the Anahita project is heading towards. A lot of research and silent development has been happening during the last year with a focus on maintaining the existing codebase while planning the upcoming releases.
The idea of Anahita came to me over a decade ago when I was working as the lead architect of a software project to develop a Learning Management System for K12. The system we built closely resembled the traditional education model. After we launched and used the system for a while with a large number of schools in the US and Canada, I went through the survey results. The responses indicated that we've been enforcing an archaic education model via technologically challenged administrators and teachers to students who had the least power and most technical aptitude within that environment. During the same time, I was involved with an open source project called Joomla. Collaboration with other open source developers ...
This is a maintenance release that fixes the issue with video player styling and comes with some refactored code as well.
to get the update run the following command in the root of your Anahita directory:
$ composer update
If you had any questions, please start a topic in the Tribe Support group: https://www.getanahita.com/groups/107732-tribe-support
This is a maintenance release that addresses a number of issues in php 7.2.8 and MySql 5.7. You will also notice a slight speed boost and new video player in the posts. To update, simply run the following command in the root of your Anahita installation:
$ composer update
If you have experienced any issues, please start a topic in the Anahita Tribe Support group: https://www.getanahita.com/groups/107732-tribe-support
My special thanks to Nick Swinford @nicholasjohn16 for testing, reporting, and providing patches.
This is a maintenance release with a number of fixes in RESTful APIs, OAuth for Twitter and facebook, and a number of improvements and cleanups in the core library. The only new features that we've added is in the Articles app. You can now upload a cover for a published article. You can see the change log for more details:
IMPORTANT NOTE: make a backup of your database before upgrading so if things went wrong, you would be able to recover.
Now run the following command in the root of your Anahita installation:
$ composer update
then run the database migration:
$ php anahita db:migrate:up
that should do it.
If you are using the master branch, you need to pull the code and then run the database migration.
Please post your questions in the Support Group and we'll be happy to help you: https://www.getanahita.com/groups/107732-tribe-support
Here are some nice looking material ui dashboards. If you know of any open source ones developed in React, please share:
In the next release of Anahita we are rebuilding the UIs in #ReactJS and #MaterialUI. The php back-end will be mostly providing Restful APIs and will only be rendering pages with SEO value, otherwise Anahita will be mostly rendering as a single page app #SAP for the logged in users. If you want to start learning the technologies that we will be using here are some resources that I've studied:
This article describes the ideal scenarios that we are aiming to achieve.
The current release of Anahita is using Bootstrap 2.2.4 which is primarily developed for desktop devices while providing a responsive mode for mobile screens. Mobile traffic is now surpassing the desktop traffic on the web so it makes sense to treat mobile users as primary users. Latest releases of #Bootstrap and #MaterialDesign have already rewritten their libraries for the mobile devices as primary users.
Quite likely we will be using the Material Design library for the next release of Anahita which seems to be more suitable for web applications compare to the Bootstrap library. We will be usi...