Skip to content

Maintain your online reputation with trend-based auto-posting

Notifications You must be signed in to change notification settings

JustinTRoss/ImPostr

Repository files navigation

Description

ImPostr is an automation-as-a-service application for curating one's online presence. Connecting Facebook, LinkedIn, and/or Twitter will allow the application to define relevant content and post said content on each of these networks. There is anxiety associated with maintaining your online persona and ImPostr is intended to handle this for you. You can also define specific posts, cancel generated posts, and view previous activity from the application. Give it a whirl!

Table of Contents

  1. Usage
  2. Screenshots
  3. Getting Started
    1. Prerequisites
    2. Installing Dependencies
  4. Understanding the Code Base
    1. File Structure
    2. Where to Begin
  5. The Tech Stack
  6. Core Team
  7. Contributing
  8. Licensing

Prerequisites

Install Node and PostgreSQL in your development environment; the optional worker service is written in Go, which will also require configuration.

Specifically, you will need specific developer keys for Twitter, LinkedIn, and Facebook.

  1. Facebook
  2. LinkedIn
  3. Twitter

Environment variables are preferred for app-specific credentials and database endpoint(s). As an example, the current project has a configuration file with defaults (in case environment variables are not set) in 'server/config'. The following are required for a fully functional application: database endpoint, database credentials, Facebook APP ID, Facebook APP Secret, LinkedIn Key, LinkedIn Secret, Twitter Consumer Key, and Twitter Consumer Secret.

As always, the Airbnb Style Guide is preferred. You may configure your linter of choice; for us, Sublime Text with ESLinter was sufficient. Dan Abramov's guide may be useful.

Installing Dependencies

From the root directory, we'll use NPM to handle dependency installation.

npm i

Running The App (cloned from git)

The use of Node scripts are ideal for persistent Babel compilation and Node server listening. Personally, we simply bound the following to "npm run dev" (with the aid of Nodemon):

webpack -d --watch & nodemon server/server.js

Running the Application (Docker)

Alternatively, you may find the deployed image here:

docker pull stevenchung/impostor:latest

Architecture

Database Design

Testing

Current testing coverage is ~85%.

From the root directory, run the following script

npm test

Tools user for testing:

  • Mocha
  • Chai
  • Sinon
  • Chai-As-Promised

Tech Stack

  • Node/Express
  • Go
  • PostgreSQL
  • React, Redux
  • Docker / AWS (EC2)

Core Team

Contributing

  1. Fork the repo.
  2. Clone it to your local computer
  3. Cut a namespaced feature branch from master
  4. Make commits and prefix each commit with the type of work you were doing
  5. Before you push, rebase upstream changes into your branch, fix any potential conflicts, and then push to your fork.
  6. Submit a pull request directly to the master from your feature branch
  7. Someone else will perform code review to keep codebase clean
  8. Fix any errors or issues raised by the reviewer and push the fixes as a single new commit
  9. Repeat until the pull request is merged.

License

M.I.T

About

Maintain your online reputation with trend-based auto-posting

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published