Giter Site home page Giter Site logo

dbstratta / margaret Goto Github PK

View Code? Open in Web Editor NEW
92.0 5.0 13.0 3.7 MB

๐Ÿ‘ฉโ€๐Ÿš€ A publishing platform. An open-source alternative to Medium.

License: MIT License

JavaScript 11.80% Elixir 85.05% HTML 0.39% Shell 0.90% Python 0.94% TypeScript 0.12% Dockerfile 0.81%
graphql react apollo blogs medium elixir absinthe phoenix redux docker kubernetes ecto machine-learning notifications

margaret's Introduction

margaret

Travis branch PRs Welcome

This is the umbrella repository of Margaret.

Table of contents

Introduction

Margaret is an open-source publishing platform (think of Medium). The initial scope is to implement the majority of features Medium has. In the future, we'll implement features that will set Margaret apart.

Features

  • Authentication

    • Users can sign up and sign in using their Facebook, Google and/or GitHub accounts

    • Users can sign in by clicking a magic link sent to their emails

  • Stories

    • Basic functionality

    • Views are counted

    • Users can publish monetized stories that only members can read

  • Memberships

    • Users can opt in to our membership program

    • Members have access to a wider selection of stories

  • Notifications

    • Basic functionality

    • Users can see only their notifications

    • Users can mark a notification as read

    • Some notifications send emails

    • Real-time functionality

  • Publications

    • Basic functionality

    • Admins can invite users to the publication

    • Members of the publication can have different roles (writer, editor, etc)

    • Writers can create drafts under the publication

    • Editors can edit and publish drafts under the publication

  • Recommendation system

    • The users' feeds are personalized based on their interests thanks to machine learning
  • Follow system

    • Basic functionality

    • Users can follow other users and publications

  • Star system

    • Users can star stories and comments
  • Bookmark system

    • Users can bookmark stories and comments to read later

Contributing

Please see CONTRIBUTING.

Project structure

  • __tests__: Contains end-to-end tests written in JavaScript with Jest.

  • .github: Contains GitHub template files.

  • .vscode: Contains VSCode workspace configuration files.

  • k8s: Contains Kubernetes manifests for production deployment.

  • projects: Contains the projects Margaret consist of.

  • scripts: Contains useful scripts for CI and other things.

Projects

  • api: Margaret's main API (Elixir, Phoenix & Absinthe).
  • ml: Machine learning predictions service (Django).
  • web: Web app (React).
  • mobile: Mobile app (React Native).

Scripts

  • build.sh: Builds and tags the Docker images.

  • deploy.sh: Builds, tags and pushes the Docker images.

  • gen_env_file.sh: Copies the example env file to the actual env file.

  • push.sh: Pushes the Docker images.

  • test.sh: Runs all the tests.

License

MIT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.