{"id":22790308,"url":"https://github.com/zven21/mipha","last_synced_at":"2026-03-04T03:01:33.033Z","repository":{"id":48403895,"uuid":"139125741","full_name":"zven21/mipha","owner":"zven21","description":"Proj Elixir Forum build with phoenix 1.5.","archived":false,"fork":false,"pushed_at":"2021-07-27T21:17:52.000Z","size":1049,"stargazers_count":160,"open_issues_count":12,"forks_count":23,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-16T02:52:05.823Z","etag":null,"topics":["ecto","elixir","forum-site","phoenix"],"latest_commit_sha":null,"homepage":"https://elixir-mipha.herokuapp.com/","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zven21.png","metadata":{"files":{"readme":"README.ZH.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-06-29T08:52:34.000Z","updated_at":"2024-10-25T08:00:51.000Z","dependencies_parsed_at":"2022-08-24T09:32:17.304Z","dependency_job_id":null,"html_url":"https://github.com/zven21/mipha","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zven21/mipha","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zven21%2Fmipha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zven21%2Fmipha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zven21%2Fmipha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zven21%2Fmipha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zven21","download_url":"https://codeload.github.com/zven21/mipha/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zven21%2Fmipha/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30070479,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T01:03:42.280Z","status":"online","status_checked_at":"2026-03-04T02:00:07.464Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ecto","elixir","forum-site","phoenix"],"created_at":"2024-12-12T02:19:58.404Z","updated_at":"2026-03-04T03:01:33.011Z","avatar_url":"https://github.com/zven21.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mipha\n\n[![Build Status](https://travis-ci.org/zven21/mipha.svg?branch=master)](https://travis-ci.org/zven21/mipha)\n[![Coverage Status](https://coveralls.io/repos/github/zven21/mipha/badge.svg?branch=excoveralls)](https://coveralls.io/github/zven21/mipha?branch=excoveralls)\n\n[English](./README.md) | 简体中文\n\n## 目录\n\n* [简介](#简介)\n* [启动程序](#启动程序)\n* [数据库表关系](#数据库表关系)\n* [项目结构](#项目结构)\n* [进度与计划](#进度与计划)\n* [其他](#其他)\n\n## 简介\n\nMipha 是一个用 Elixir 模(chao)仿(xi) [RubyChina](https://ruby-china.org/) 的开源论坛。\n有兴趣参与开发的童鞋，可以加入 [Slack channel](https://elixir-mipha.slack.com/)\n\n## 启动程序\n\n```bash\n# clone 项目\ngit clone git@github.com:zven21/mipha.git\n# 初始化，如果是 Mac 电脑，可以执行 ./script/setup，\ncd mipha \u0026\u0026 ./script/setup\n# 数据库初始化，在 config/dev.exs 内配置开发环境的 postgres 账号和密码\nmix ecto.reset\n# 启动项目 :-)\nmix phx.serve\n```\n\n如果要使用上传图片、发送邮件或第三方 Github 登录功能，需要配置环境变量配置在  `~/.profile` 或 `~/.zshrc` 中\n\n```bash\n# 七牛图片服务器的账号和密码\nexport QINIU_ACCESS_KEY\nexport QINIU_SECRET_KEY\n# 发送邮件服务器的账号和密码\nexport GMAIL_USERNAME\nexport GMAIL_PASSWORD\n# Github 第三方认证登录的 Key 与 Secret\nexport GITHUB_CLIENT_ID\nexport GITHUB_CLIENT_SECRET\n```\n\n## 数据库表关系\n\n![ ](https://l.ruby-china.com/photo/2018/b96739ac-94d4-433e-9693-de528466c6d3.jpeg!large)\n\n## 项目结构\n\n目前的项目结构设计很直接，不属于 web 部分的功能，都放到了 lib/mipha 内，后续会根据业务需求调整。\n\n```bash\n.\n├── assets                     # JS CSS 与静态资源\n├── lib                        # 项目 elixir 代码\n│   ├── mipha                  # 目前的逻辑是非 Web 部分的代码放到这里。\n│   │   ├── accounts           # 社区用户、团队、公司、地址\n│   │   ├── collections        # 收藏\n│   │   ├── follows            # 关注\n│   │   ├── markdown           # markdown 文本解析相关策略\n│   │   ├── notifications      # 站内信（通知）\n│   │   ├── replies            # 帖子评论\n│   │   ├── stars              # 点赞，目前支持点赞帖子与评论\n│   │   ├── topics             # 帖子与帖子的分类（节点)\n│   │   ├── utils              # 工具库\n│   │   ├── mailer.ex          # 发送邮件\n│   │   ├── markdown.ex        # markdown 文本解析\n│   │   ├── qiniu.ex           # 七牛上传图片\n│   │   ├── regexp.ex          # 正则表达式\n│   │   ├── token.ex           # token 验证\n│   ├── mipha_web\n│   │   ├── channels           # socket WS 协议相关代码\n│   │   ├── controllers        # Controllers\n│   │   │   ├── admin          # admin 管理台\n│   │   ├── plugs              # Plugs\n│   │   ├── templates          # Templates\n│   │   ├── views              # Views\n│   │   ├── email.ex           # 发送邮件方法及调用邮件模板\n│   │   ├── session.ex         # 用户登录相关的 session 处理\n│   ├── mipha.ex\n│   ├── mipha_web.ex\n└── test                       # 测试\n\n```\n\n## 进度与计划\n\n目前在[第一迭代](https://github.com/zven21/mipha/milestone/1)，按照 RubyChina 的功能实现。欢迎提 Issue 或 PR。\n\n## 其他\n\n* [[开源项目] 用 Elixir 撸了一个 RubyChina](https://ruby-china.org/topics/37158)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzven21%2Fmipha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzven21%2Fmipha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzven21%2Fmipha/lists"}