Skip to content

shibbir/gadget-catalog

Repository files navigation

📢 Gadget Catalog

A single page application for cataloging gadgets. Built with react, node.js, mongodb and much more.

Yet another react.js application. Built with ❤︎ by Shibbir Ahmed and contributors.

🔖 Table of Contents

🔧 Built with

☁️ Configuring Cloudinary

This application requires Cloudinary, 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.

✏️ Configuring Tiny Cloud

This application requires Tiny Cloud for managing richtext contents. To register for a Tiny Cloud API key, visit the Tiny Account sign-up page. To retrieve the API key for an existing Tiny Account, login and visit the Tiny Account Dashboard.

🔑 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.
TOKEN_SECRET Yes A secret string to generate an access token. Learn more from here.
REFRESH_SECRET Yes A secret string to generate a refresh token. Learn more from here.
GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET No Your OAuth 2.0 client credentials from google. Learn more from here.
FACEBOOK_CLIENT_ID and FACEBOOK_CLIENT_SECRET No Your OAuth 2.0 client credentials from facebook. Learn more from here.
CLOUDINARY_CLOUD_NAME, CLOUDINARY_API_KEY, and CLOUDINARY_API_SECRET Yes After signing up for a free account in Cloudinary, go to your dashboard to obtain the required credentials to access their api. Learn more from here.
TINYCLOUD_API_KEY Yes Your TinyMCE API Key. For more details visit here.
SMTP_HOST, MAILER_ADDRESS, and MAILER_PASSWORD Yes Your mail server's smtp address and your email credentials. Learn more from here. 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.
SENTRY_DSN No Data Source Name(DSN) value for enabling Sentry.

🚀 Installation and bootstrapping

You need to have Node.js and Yarn installed on your machine before running the followings:

$ yarn install     # install dependencies

$ yarn start       # development build

$ yarn production  # production build

✔️ Running Tests

$ yarn test       # run unit tests

$ yarn coverage   # generate coverage report

🔦 Demo

Here is a working live demo : https://gadget-catalog.onrender.com/

🪲 Bugs or Feature Requests

If you find a bug, kindly open an issue here 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.

📝 License

The MIT License. Copyright © 2023 Shibbir Ahmed.