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!
- Usage
- Screenshots
- Getting Started
- Understanding the Code Base
- The Tech Stack
- Core Team
- Contributing
- Licensing
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.
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.
From the root directory, we'll use NPM to handle dependency installation.
npm i
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
Alternatively, you may find the deployed image here:
docker pull stevenchung/impostor:latest
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
- Node/Express
- Go
- PostgreSQL
- React, Redux
- Docker / AWS (EC2)
- Fork the repo.
- Clone it to your local computer
- Cut a namespaced feature branch from master
- Make commits and prefix each commit with the type of work you were doing
- Before you push, rebase upstream changes into your branch, fix any potential conflicts, and then push to your fork.
- Submit a pull request directly to the master from your feature branch
- Someone else will perform code review to keep codebase clean
- Fix any errors or issues raised by the reviewer and push the fixes as a single new commit
- Repeat until the pull request is merged.
M.I.T