Coder Social home page Coder Social 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

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

margaret's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

margaret's Issues

Logo design for margaret

Hello! I am a graphic designer. I want to contribute to margaret. Do you want me to design a logo for the margaret? Actually, i have an idea. If you have an idea, you can say me.

Improve the the way the project is documented

Hello here,

I would like to contribute to this project. So, I tried to follow the current documentation (various .md files in the project) but I was unable to run the application (e.g. if a database is required, or other setup information) or to run all the tests (what I see is that there are no tests at all, in the api project for example.)

Without tests it can be very difficult to change the code, maintain it or add a new feature.

So, in order to contribute I think it could be useful to put these information somewhere (maybe the main README.md can be the right place?).

I see that the project can use Docker. The way to use docker-compose or to use Docker in order to run the application can be documented, too. For example if a were a developer that wants to run the application locally, it could be very useful.

What do you think?

Other nice-to-have improvements for the project

  • Maybe a Gitter chat room can be useful to talk about the project
  • Maybe a TravisCI can be useful to setup a Continuous Integration process.

Automate Elixir dependency updates

Hey, I noticed you were using Renovate for automated JavaScript updates, and wondered if you'd be up for giving Dependabot a go for automated Elixir dependency updates. I built it, and it's totally free for open source projects (and always will be) - I'm just trying to get more people using it. :octocat:

Recommendation system

This would be a good use case for a model for each user to learn about their patterns of viewing, commenting and other things to recommend more accurate stories.

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.