Anahita

Anahita 是一个用于构建知识共享的应用程序和服务的社交网络框架和平台。(Anahita is a social networking framework and platform for building knowledge sharing apps and services. )

Github星跟蹤圖

Anahita-安娜希塔®是一个开发人员友好的开源社交网络平台和框架,可以帮助您在较短的时间使用正确的和可扩展的架构,构建您的应用程序和服务。 基本的功能,安娜希塔可以为您提供简单和灵活的社交网络。安娜希塔提供更先进的开发能力,只要你有足够的想象力,安娜希塔将提供给你一个当今最好的遵循 nodes-graphs-stories 结构的社交网络框架,安娜希塔®是真正的系统的和可扩展的解决方案,帮助你跟上商业生态系统的变化。

您可以使用安娜希塔开发:

  • 经典的社交网络:商业业务,生活圈子和支持团体
  • 服务器端基础设施,为您的移动应用程序服务
  • 组织生产力和通信网络 e-learning网络:教育,商业,或特殊兴趣
  • 电子商务和优质的内容交付网络

安娜希塔是RAD,SAASY,SOCIAL!

  • RAD:一个快速的应用程序开发框架,用简单的和符合逻辑的方式,处理复杂情况的解决方案,你不需要写大量的代码!
  • SAASY:作为服务企业开发软件的理想解决方案。
  • SOCIAL:专业的API可供开发定制的社交网络应用程序。

Anahita 可用于启动以下类型项目︰

  • 在线学习和知识共享网络
  • 关于人物、 地点和事物的信息接入网络
  • 开放科学和开放的数据网络
  • 在线协作环境
  • 移动应用程序的云后端

Anahita 提供了一个真正的节点和图形架构,以及构建更聪明和社会化的应用程序的设计模式。

安娜希塔提供插件,允许所有上传的文件被存储在 AWS 或 亚马逊S3云。

Features(主要功能)

Social Foundation
Build and install your apps on a social networking foundation that follows a genuine nodes-graphs-stories architecture.

Social Features
Upon installation, Anahita provides a comprehensive list of social networking features such as: Actor Profiles, Social Graphs, Hashtags, Locations, Mentions, Story Feeds, and Privacy.

Apps
Select and install from a collection of available apps such as: Groups, Topics, Pages, Photos, Todos, and more. These apps can also be used as blueprints for developing your own custom apps.

RESTful & JSON APIs
Anahita provides RESTful & JSON APIs in all its apps. That means as you are developing your apps, you are developing your APIs too.

Customizable
Every user interface, layout, and core class in Anahita can be customized and overridden without you having to hack the core architecture.

Extendable
Extend Anahita by installing apps, integrating with other web services, or using it as a back-end cloud for your mobile apps.

概覽

名稱與所有者anahitasocial/anahita
主編程語言PHP
編程語言PHP (語言數: 1)
平台BSD, Linux, Mac, Solaris, Unix-like
許可證GNU General Public License v3.0
發布數56
最新版本名稱v4.8.1 (發布於 )
第一版名稱2.2.4 (發布於 )
創建於2013-06-11 00:43:52
推送於2023-10-25 04:17:22
最后一次提交2023-10-24 21:17:10
星數431
關注者數63
派生數172
提交數3.6k
已啟用問題?
問題數50
打開的問題數6
拉請求數570
打開的拉請求數5
關閉的拉請求數17
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?

Anahita social networking platform and framework

Anahita

Version: 4.4.3 Birth Release

Anahita is a platform and framework for developing open science and knowledge sharing applications on a social networking foundation. Use Anahita to build:

  1. online learning and knowledge sharing networks
  2. information access networks about people, places, and things
  3. open science and open data networks
  4. online collaboration environments
  5. cloud back-end for your mobile apps

Anahita provides a genuine nodes and graphs architecture as well as design patterns for building social networking apps.

Concepts

Nodes

  1. actors: people, groups, or build your own custom actor
  2. media: notes, topics, todos, photos, articles, or build your own custom media
  3. hashtags: all actors, media, and comments are hashtaggable
  4. locations: all actors and media are geolocatable
  5. stories: updates created by actors for their followers

Graphs

  1. social graph: people and groups can be followed by other people.
  2. hashtags: for actors, media, and comments
  3. mentions: tag people in media and comments
  4. locations: tag locations in media and actors and search nearby nodes
  5. notifications: a person receives an email notification whenever a comment is posted on an item they are subscribed to.
  6. votes: people can Like/Unlike media and comments

Stories

  • story feeds on dashboard and actor profiles
  • notifications

RAD Framework

  1. MVC rapid app development framework specialized for building social apps
  2. fully customizable theme and user interfaces
  3. extendable by social apps and components
  4. RESTful and JSON APIs (ideal to use Anahita as a back-end for mobile apps)
  5. Built using your favourite technologies such as PHP5, MySql, Bootstrap, JQuery, Grunt, Composer, LessCSS

Embryo and Birth releases

The code in the master branch is called the Embryo. It is what we use to power our website GetAnahita.com and it is constantly changing and evolving. It may contain bugs that are being fixed. Experimental features may be added and removed. Whenever we reach a specific milestone and the codebase is stable, it is packaged as a Birth relase.

Upgrading

If you are upgrading from 4.3.* to 4.4.*, in www/configuration.php file, change AnConfig to AnSiteConfig.

If you are using any previous 4.* versions of Anahita, here is how to upgrade

Installation

System Requirements

Before you start please make sure that your server meets the following requirements:

  1. Linux or unix server
  2. Nginx or Apache 2.0+
  3. MySql 5.6+
  4. php 5.6+ with OPcache and APCU. Use PHP version 7.0.0 to 7.3.* for best results. (PLEASE NOTE: Anahita isn't yet supported on PHP 7.4, because the upgrade list is long and we are still working on it).
  5. Composer package management. You can download it following the instructions on
    http://getcomposer.org/ or just run the following command:

curl -s http://getcomposer.org/installer, php

Important Notes

If you have the suhosin patch installed on your server you might get an error. Add this line to your php.ini file to fix it: suhosin.executor.include.whitelist = tmpl://, file://

Anahita is installed and managed via command line interface, because this is the most reliable approach especially after you accumulate large amounts of data in your database.

Installing a stable package

Installing Anahita using the Birth release code

Stable packages are called Birth releases. Use the following command to create an Anahita project called myproject. This command automatically downloads all the required files from the Anahita GitHub repository:

composer create-project anahita/project myproject

Now go to the myproject directory:

cd myproject

Continue with [Initiating Installation] (#initiating-installation) from this point.

Installing from the master branch

Installing Anahita using the Embryo release code

The master branch always contains the Embryo release. Using the following command, clone the Anahita repository from the master branch:

git clone git@github.com:anahitasocial/anahita.git myproject

change directory to myproject

cd myproject

Now run the composer command to obtain all the 3rd party libraries that Anahita requires:

composer update

Continue with Initiating Installation from this point.

Initiating Installation

Initiating Anahita installation

If you type php anahita you get a list of all commands available to manage your Anahita installation. If the command didn't work, perhaps the symlink to the anahita command line tool isn't created. In this case run the following command to create a symlink. Otherwise move to the next step which is initiating the installation process.

ln -s bin/anahita anahita

In order to initiate the installation process run the following command and provide your database information when it is asked from you:

php anahita site:init

The Anahita installation is created in the PATH-TO-YOUR-DIRECTORY/myproject/www directory. You need to configure your server to use this directory as the public directory.

The first account that is created on this installation becomes the Super Administrator account. Go to the http://www.YOUR-DOMAIN-NAME.com/people/signup and create an account.

Congratulations! You have installed Anahita successfully. Now you need to configure your installation and install some apps.

Configuring Your Anahita Installation

Now you need to make some configurations before you can use your Anahita for development or production server. To access the site settings:

  1. Login to your Anahita installation as a Super Administrator
  2. Click on your avatar on the top menubar
  3. Click on Site Settings. By default you will go to the Site Settings

Here are the options on the Site Settings view:

  1. About: has basic information about your Anahita installation such as creators and software version.
  2. System: system settings such as site name, database, and mail configurations happen here.
  3. Apps: configure Anahita apps for the entire site.
  4. Assignments: configure which actors (People, Groups, etc.) can use what apps (Topics, Photos, etc.)
  5. Plugins: configure Anahita plugins for the entire site.
  6. Templates: configure Anahita templates. That is only if they are configurable.

Notifications

Anahita emails out a lot of email notifications. In order for the notifications to get sent out, you can setup a cron job on your server to the yourdomain.com/components/com_notifications/process.php file. Make sure to go to Site Settings > Apps > Notifications and set Use Cron to Yes.

There are many articles on the web to show you how to setup a cron job. Depending on your number of users and activity on your site, anywhere from 15 minute to 1 hour intervals will work. You will find the suitable interval after monitoring your Anahita installation for a while.

Installing Social Apps

Installing Anahita social apps

Now it is time to extend your Anahita installation with some apps and components. Anahita comes with a list of social apps which you can use as they are or use them as blueprints for developing your own custom apps.

To get a list of available apps simply type the following command:

php anahita package:list

Now in order to install an app, for example the Photos app, type the following command:

php anahita package:install photos

You can even provide a list of apps and components in one line. For example to install the Groups, Topics, and Connect apps use the following command:

php anahita package:install groups topics connect

Go to Site Settings > Assignments to define whether an app should optionally or always be available on actor profiles (people, groups, etc.). If an app is optionally available, then on each actor profile the app can be enabled under the Edit Profile > Apps.

Congratulations! You have just installed some apps and extensions on your Anahita installation.

Amazon S3 Storage

Nearly in all cases you wouldn't want to store the uploaded files on your own server. They add up very quickly and that makes it very difficult to maintain or migrate your Anahita installation. Anahita provides a plugin which allows all the uploaded files to be stored in the AWS or Amazon S3 cloud.

Go to Site Settings > Plugins and then from the type list select Storage. Edit and disable the Storage - Local plugin by clicking on it's name. Edit the Amazon S3 plugin using the following settings:

  1. Enabled: set to yes
  2. The folder to store the data: use assets as the default setting
  3. Bucket: enter the name of your Amazon S3 bucket
  4. Access Key: enter your AWS access key
  5. Secret Key: enter your AWS secret key

Now click Update to store the settings. Try uploading your avatar in the front-end and see if it gets uploaded properly. Check the image src to make sure it is an AWS url.

Join the Anahita Tribe

Anahita has an active and thriving tribe of hackers, entrepreneurs, and hackerpreneurs. They are helpful and friendly. So Join Us

Please Note: we do not answer questions in email. If you have any questions, please join the Anahita tribe and post your questions on the Tribe Support group where others can benefit from the answers too.

Report Bugs or Issues

There are so many ways that you can report us a bug:

Contribute to Anahita

Anahita could never be possible without the help of people in our tribe. We need contributors who can help us with testing, finding and fixing bugs, and coding of course. Here is a complete guideline of how you can contribute to Anahita.

Follow us, Like us

Follow us on twitter @anahitapolis and like our facebook page Facebook.com/anahitasocial

Credits

Anahita is developed and maintained by rmdStudio Inc. a software development company in Vancouver, Canada. We develop web and mobile apps for scientific, healthcare, and industrial sectors.

去到頂部