Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Collaborative newsletter

This project is a complete solution to create a collaborative newsletter and a dynamically generated RSS


  • Basic login + JWT authentication
  • Upload news through website
  • Generate automatically weekly newsletter through API call



  • Angular - HTML enhanced for web apps!

This project was generated with Angular CLI version 1.0.0-beta.32.3.


Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the -prod flag for a production build.

Running unit tests

Run ng test to execute the unit tests via Karma.

Running end-to-end tests

Run ng e2e to execute the end-to-end tests via Protractor. Before running the tests make sure you are serving the app via ng serve.

Connecting to Collaborative Newsletter backend

Create /src/app/config.json file with the same structure than /src/app/config.sample.json

Config variables

baseURL: Url to connect with the backend API rssName: Name of the rss that will be created in the backend for this news


  • node.js - evented I/O for the backend
  • Express - fast node.js network app framework
  • MongoDB - MongoDB stores data in flexible, JSON-like documents, meaning fields can vary from document to document and data structure can be changed over time.


Requires Node.js v6+ to run.

Clone repository and install dependencies

$ cd newsletter\backend
$ npm install -d

Modify users info in the file tools/users_init.json Init the database with users and newsletter feed

$ node tools/db_init.js


Before launching the server, copy config_sample.json file into config.json file, and set the proper values to the configuration variables

  • db_config: Configuration of your instance of MongoDB
  • app_name: The name you want for the project.
  • EXTERNAL_PROTOCOL, EXTERNAL_HOST, EXTERNAL_PORT: They will be used to generate dynamically the urls of several resources returned into the API methods. Besides, EXTERNAL_PORT will be the port where server will be listening por requests. It has to be configured in the frontend project configuration
  • secret: String used as key to encrypt and decrypt JWT tokens
  • sessionSecret: String used as key to encrypt and decrypt sessions info
  • i18n_path: Path where locales folder can be found. It has all translation files.
  • MODULES: Both modules have to be active (true) to work properly
  • BASIC_AUTH_STRATEGY, JWT_STRATEGY: Both authentication strategies need to be active (true) to work properly.
  • TOKEN_LENGHT: Length of refresh token used to refresh JWT tokens
  • TOKEN_TIME: Life time of JWT tokens (in seconds).

Run server

$ node server.js


If you want to launch a demo fo this project you can use docker or docker-compose to test it.

From project root folder, execute:

docker-compose up -dt

It takes arround 5 minutes to be ready. Then you can open this url http://localhost:8080 and you will get the login page, where you can enter:

  • user: owner password: ownerpassword1
  • user: user_1 password: userpassword1


Want to contribute? Great!

Create a Pull Request and send it. We will review it as soon as we can


$ mocha


MIT Copyright (c) 2017-present, Solid GEAR Projects S.L.


Create your own collaborative newsletter when users can upload their news and consume them though a rss feed and automatically generated templates.







No packages published