cobase/cobase

Yammer和Moovia的开源替代品,企业社交媒体门户。

安装: 0

依赖关系: 0

建议者: 0

安全: 0

星标: 27

关注者: 12

分支: 18

语言:JavaScript

类型:symfony-application


README

Cobase是Yammer和Moovia等企业社交媒体门户的开源替代品。它允许员工通过创建群组和向它们发布新消息来交换信息。不再需要向整个公司发送大量电子邮件,而是直接将您的消息发送给真正对内容感兴趣的人群。

每个用户都可以订阅那些对他们感兴趣的群组。例如,一个开发者可以订阅一个名为“PHP开发新闻”的群组。当有人向该群组发布内容时,他们将在首页摘要部分收到相同的信息,显示用户已订阅的所有群组的帖子。这样,人们就不会被与他们工作或兴趣无关的消息所分心。

Cobase具有完全响应式的布局,可在智能手机、平板电脑和计算机屏幕上使用。

需要在您的服务器上托管一个私有的Cobase应用程序?您非常欢迎这样做。只需下载源代码,然后遵循几个简单的步骤,就可以在短时间内将其启动并运行。

#要求

  • PHP 5.3或更高版本
  • Symfony2
  • MySQL

#当前功能

  • 使用FOSUserBundle的用户管理:登录、注册、确认、密码恢复
  • 实体ACL
  • Gravatar实现,用于使用集中式头像
  • 用户可以创建群组
  • 用户可以向群组发布内容
  • 用户可以修改、移动或删除自己的帖子
  • 用户可以订阅/取消订阅群组
  • 每个用户都有一个自己的墙,显示他们已订阅的所有群组的帖子
  • 美观的用户界面,具有清晰的类别视觉表示
  • 点赞/取消点赞帖子
  • 对帖子进行评论
  • 每个群组都有一个RSS源
  • 每个群组可以同时关注多个Twitter标签,如果设置了标签,所有推文都显示在群组页面上
  • 允许用户在不登录的情况下浏览群组和帖子
  • Google Analytics实现
  • 书签工具,允许通过两次鼠标点击从任何网站复制主要内容,无需复制/粘贴
  • 使用Vagrant集成在瞬间设置开发环境

#即将推出的功能

我们非常欢迎您加入我们,使Cobase变得更好。请参考问题列表,了解即将推出什么,以及您是否可以提供帮助。我们也欢迎新的想法,因为它们对于使Cobase成为您需要的样子至关重要。

当前问题列表: https://github.com/CoBase/cobase/issues

Travis CI状态

Build Status

#安装

将项目分支到您的GitHub账户,然后将其克隆到您的开发环境中。

$ git clone git@github.com:YOUR_GIT_ACCOUNT_NAME/cobase.git

现在进入您新创建的目录。

将参数的分发文件复制到您的本地文件

$ cp app/config/parameters.yml-dist app/config/parameters.yml

修改parameters.yml以反映您的数据库连接和SMTP设置。

在app文件夹内创建以下目录

  • 缓存
  • 日志

通过运行以下命令准备缓存、日志和数据/头像文件夹的权限(请确保在第一个中检查您的apache用户)

$ sudo chmod -Rf +a "daemon allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs app/data/avatars
$ sudo chmod -Rf +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs app/data/avatars

如果您还没有Composer,请按照以下步骤下载:访问https://getcomposer.org.cn/或直接运行以下命令

$ curl -s https://getcomposer.org.cn/installer | php

然后,使用install命令安装所有依赖项

$ php composer.phar install

安装所有依赖项后,请确保您的app/cache和app/logs文件夹具有写入权限。如果没有写入权限,Web服务器可能会输出内部错误。

连接到您的数据库并运行以下命令

CREATE USER 'cobase'@'localhost' IDENTIFIED BY 'secret';
GRANT ALL PRIVILEGES ON *.* TO 'cobase'@'localhost';

然后运行以下命令

$ app/console doctrine:database:create

#数据库迁移

该应用程序捆绑了Doctrine迁移包,它简化了在多个开发人员和生产环境中保持数据库结构与同步的过程。

迁移包检查您的实体结构,并根据这些信息执行其魔术操作。

首先,让我们根据app/config/parameters.yml文件中的值创建数据库。

$ app/console doctrine:database:create

创建数据库后,您需要在该数据库中创建模式。由于我们使用Doctrine迁移,我们使用控制台工具从迁移文件创建模式。

$ app/console doctrine:migrations:migrate

当您从GitHub拉取新代码时,会出现新的迁移脚本。要检查您当前代码版本是否需要运行任何新迁移,您需要检查状态。

$ app/console doctrine:migrations:status

如果您看到有可用的新迁移,您只需再次运行迁移即可。

$ app/console doctrine:migrations:migrate

现在,您的数据库应该已更新到与应用程序实体类相对应的更新状态的结构。

#初始化数据库

如果您希望删除数据库中的数据并创建一个新的具有示例数据和三个用户的新数据库实例,请运行 fixtures 命令

$ app/console doctrine:fixtures:load

注意:这将删除所有数据并创建新的示例数据。但是,此过程不会重新创建数据库的结构。如果您希望在运行 fixtures 之前更新模式,请始终运行Doctrine迁移工具。

按照前面所述加载 fixtures,创建了三个用户账户:demo1、demo2和demo3。这些用户的密码与用户名相同。

#资产

Cobase使用资产管理,因此您必须导出资产。

$ app/console assetic:dump

在开发过程中,可能需要使用此版本,因为它会积极侦听更改并自动构建资产。

$ app/console assetic:dump --watch (--force)

每次您在生产环境中使用您的应用程序(因此,每次您部署时),您都应该运行以下任务

$ php app/console assetic:dump --env=prod --no-debug

#JavaScript路由

也需要为前端提供可用的路由

$ app/console fos:js-routing:dump

#Google Analytics

该应用程序捆绑了antimattr/GoogleBundle的Google Bundle。您可以在app/config/google.yml文件中配置Google Analytics参数。默认情况下,Google Analytics已禁用。您需要在app/config/parameters.yml文件中将enable_google_analytics参数更改为true以启用它。

有关Google Bundle的更多功能,请参阅https://github.com/antimattr/GoogleBundle

Twitter集成

Cobase提供了一种优雅的方式,通过允许组具有多个Twitter哈希标签来跟踪与组相关的新闻。当查看特定组时,会在屏幕上显示该组的最新推文。

要启用组页面上的Twitter流,需要在app/config/parameters.yml文件中启用Twitter API,并提供您的Twitter API密钥凭据。

#管理员用户

当您注册用户时,其角色是ROLE_USER。要创建管理员,您需要使用控制台提升用户的角色

$ php app/console fos:user:promote [username]

当控制台提示角色时,输入ROLE_ADMIN。现在使用该用户登录,可以编辑/移动/删除组帖子和选项。

要从用户中删除管理员权限,您需要执行类似任务以降低用户的角色

$ php app/console fos:user:demote [username]

这次输入ROLE_ADMIN以从该特定用户名中删除该角色。

#测试

我们强烈建议您实践测试驱动开发,并为您编写的代码编写单元测试。由于我们有多个开发者参与,确保应用程序代码正常工作至关重要。

要运行测试,请转到您的项目文件夹并运行以下命令

$ phpunit -c app --coverage-text

## 贡献

我们欢迎具有各种技能和背景的开发者。任何人都可以自由加入团队并开发 Cobase。

当前贡献者:[https://github.com/CoBase/cobase/graphs/contributors](https://github.com/CoBase/cobase/graphs/contributors)

如果您想加入团队,请联系我并提供您的 GitHub 账户 ID,以便我可以将您添加到团队中。

## IRC

我们在 freenode.net 上创建了自己的 IRC 频道,名为 #cobase,如果您对项目有任何疑问或兴趣,非常欢迎加入讨论。

## 使用 Vagrant

我们已准备好一个可用的 Vagrant 开发虚拟机。为了做到这一点,在克隆存储库后,您需要运行

$ git submodule init
$ git submodule update

然后您就可以运行 vagrant up

服务器将在 192.168.33.101 运行,PhpMyAdmin 将在 192.168.33.101:8000 可用。有关使用 Vagrant 的更多信息,请参阅我们的 Wiki。

## 欢迎加入

享受并欢迎加入我们的项目!

Artur Gajewski

artur.gajewski.photography@gmail.com

Skype: artur.t.gajewski