https://github.com/shibbir/gadget-catalog
A react application for cataloging gadgets
https://github.com/shibbir/gadget-catalog
cloudinary express jest mongodb nodejs passport reactjs redux semantic-ui-react webpack
Last synced: 3 months ago
JSON representation
A react application for cataloging gadgets
- Host: GitHub
- URL: https://github.com/shibbir/gadget-catalog
- Owner: shibbir
- License: mit
- Created: 2016-11-29T17:16:18.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-10-22T00:24:39.000Z (over 1 year ago)
- Last Synced: 2023-10-22T02:22:08.355Z (over 1 year ago)
- Topics: cloudinary, express, jest, mongodb, nodejs, passport, reactjs, redux, semantic-ui-react, webpack
- Language: JavaScript
- Homepage: https://gadget-catalog.onrender.com
- Size: 62.1 MB
- Stars: 7
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
:loudspeaker: Gadget CatalogA single page application for cataloging gadgets. Built with react, node.js, mongodb and much more.
## :bookmark: Table of Contents
- [Built with](#hammer-built-with)
- [Configuring Cloudinary](#cloud-configuring-cloudinary)
- [Configuring environment variables](#key-configuring-environment-variables)
- [Installation and bootstrapping](#rocket-installation-and-bootstrapping)
- [Running tests](#heavy_check_mark-running-tests)
- [Demo](#flashlight-demo)
- [Bugs or Feature Requests](#beetle-bugs-or-feature-requests)
- [License](#memo-License)## :wrench: Built with
- [Cloudinary](https://cloudinary.com/)
- [Express](https://expressjs.com/)
- [Formik](https://jaredpalmer.com/formik/)
- [Highcharts](https://www.highcharts.com/)
- [Jest](https://jestjs.io/)
- [MongoDB](https://www.mongodb.com/)
- [Nodemailer](https://nodemailer.com/)
- [Passport](https://www.passportjs.org/)
- [React](https://reactjs.org/)
- [React Redux](https://react-redux.js.org/)
- [Semantic UI React](https://react.semantic-ui.com/)
- [Tiny Cloud](https://www.tiny.cloud/)
- [Webpack](https://webpack.js.org/)## :cloud: Configuring Cloudinary
This application requires [Cloudinary](https://cloudinary.com/), which is a Software-as-a-Service (SaaS) solution for managing media assets in the cloud. Just signup for a free account. After signing up you will find your configuration parameters in cloudinary management [console.](https://cloudinary.com/console)## :pencil2: Configuring Tiny Cloud
This application requires [Tiny Cloud](https://www.tiny.cloud/) for managing richtext contents. To register for a Tiny Cloud API key, visit the [Tiny Account sign-up page](https://www.tiny.cloud/auth/signup/). To retrieve the API key for an existing Tiny Account, login and visit the [Tiny Account Dashboard](https://www.tiny.cloud/my-account).## :key: Configuring environment variables
> Rename .env.example file to .env and adjust your environment variables. Details for each environment variables are given below:Name | Mandatory | Description
------------ | ------------- | -------------
PORT | Yes | On which port the web server will be listen to.
MONGODB_URI | Yes | MongoDB connection string URI. For more details visit [here](https://docs.mongodb.com/manual/reference/connection-string/).
TOKEN_SECRET | Yes | A secret string to generate an access token. Learn more from [here](https://jwt.io/introduction/).
REFRESH_SECRET | Yes | A secret string to generate a refresh token. Learn more from [here](https://jwt.io/introduction/).
GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET | No | Your OAuth 2.0 client credentials from google. Learn more from [here](https://developers.google.com/identity/protocols/OAuth2).
FACEBOOK_CLIENT_ID and FACEBOOK_CLIENT_SECRET | No | Your OAuth 2.0 client credentials from facebook. Learn more from [here](https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow).
CLOUDINARY_CLOUD_NAME, CLOUDINARY_API_KEY, and CLOUDINARY_API_SECRET | Yes | After signing up for a free account in [Cloudinary](https://cloudinary.com/), go to your [dashboard](https://cloudinary.com/console) to obtain the required credentials to access their api. Learn more from [here](https://cloudinary.com/documentation).
TINYCLOUD_API_KEY | Yes | Your TinyMCE API Key. For more details visit [here](https://www.tiny.cloud/docs/tinymce/6/).
SMTP_HOST, MAILER_ADDRESS, and MAILER_PASSWORD | Yes | Your mail server's smtp address and your email credentials. Learn more from [here](https://nodemailer.com/smtp/). If you want to use gmail to send emails you have to allow non secure apps to access gmail. You can do this by going to your gmail settings [here](https://myaccount.google.com/lesssecureapps).
SENTRY_DSN | No | Data Source Name(DSN) value for enabling [Sentry](https://sentry.io).## :rocket: Installation and bootstrapping
> You need to have [Node.js](https://nodejs.org/en/) and [Yarn](https://yarnpkg.com/lang/en/) installed on your machine before running the followings:```bash
$ yarn install # install dependencies$ yarn start # development build
$ yarn production # production build
```## :heavy_check_mark: Running Tests
```bash
$ yarn test # run unit tests$ yarn coverage # generate coverage report
```## :flashlight: Demo
Here is a working live demo : https://gadget-catalog.onrender.com/## :beetle: Bugs or Feature Requests
If you find a bug, kindly open an issue [here](https://github.com/shibbir/gadget-catalog/issues/new) by including your step by step to reproduce the issue.If you'd like to request a new feature, feel free to do so by opening an issue [here](https://github.com/shibbir/gadget-catalog/issues/new).
## :memo: License
The MIT License. Copyright © 2023 [Shibbir Ahmed.](https://shibbir.io/)