A React Redux blogging demo app with a node/express API and MongDB database. The app uses PassportJS and OAuth2 for authentication, and a Redis cache.
The app also connects to an AWS S3 bucket for image uploads and retrievals.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
To install the app the following is required:
- Google API Account - For google OAuth2 authentications
- Mlabs account - For a MongoDB database URI [or similar service]
- Redis installation - Used to create a cache memory store for MongoDB
- AWS S3 account - to create an S3 bucket for image uploads
Using the prerequisites above, create a dev.js file in the config directory.
module.exports = {
googleClientID: "<your.googleClientID>"
googleClientSecret: "<your.googleClientSecret>",
mongoURI: "<your.mongoURI>",
cookieKey: "<your.key>",
redisUrl: "redis://127.0.0.1:6379",
accessKeyId: "<your.S3.accessKeyId>",
secretAccessKey: "<your.S3.secretAccessKey>"
};
To get a development env running
Get the code
git clone https://github.com/Steve-Reid/Blog-App.git
Install the node dependencies on the server
cd Blog-App
yarn
Install the node dependencies on the client
cd Blog-App/client
yarn
Start the servers
cd Blog-App
yarn run dev
Feel free to use npm instead of yarn if you prefer.
The test suite was built using Jest and Puppeteer
To run the tests
yarn run test
- React - The frontend framework used
- Redux - State Management
- React Router - Client side routing
- Axios - Promise based HTTP client
- Node.js - a JavaScript runtime
- Express.js - a Node.js framework
- Passport.js - authentication middleware
- Mongoose - Object document mapper for MongDB
- MongDB - NoSQL database
- Jest - Test Runner
- Puppeteer - a headless chromium automated testing api
- Travis-CI - Open sources continuous integration testing
This project is licensed under the ISC License - see the LICENSE.md file for details