Skip to content

Latest commit

 

History

History
118 lines (87 loc) · 3.63 KB

README.md

File metadata and controls

118 lines (87 loc) · 3.63 KB

Social Gen

A facebook/instagram-like inspired social media. This pet project is the rebranding of the old project 'Foodie'

Heroku Vercel

Table of contents

Features

This web app consists of a basic features/functionalities of a socia media

  • Login and Registration
  • Notification
  • Private Messaging
  • Post CRUD functionality
  • Comment feature
  • Profile Customization
  • Followers/Following feature
  • Search Feature

Technologies

Front End Back End
React 17.0.1 Node 12.18.1
TypeScript MongoDB
Redux Mongoose
Redux-Saga SocketIO
React Router Express JS
TailwindCSS Passport JS
PostCSS Cloudinary
Axios

Installation

Install yarn and concurrently as devDependencies

$ npm install yarn concurrently -D

To install both ends (frontend/server).

$ yarn init-project

Or to install them individually

$ cd frontend // or cd server and then run:
$ yarn install

Run locally

Before running the project, make sure to have the following done:

  • Download and install MongoDB
  • Create Firebase Project for storage bucket
  • Create Google Service Account json key and configure ENV variable to your machine

Create .env-dev or .end-prod env variables and set the following:

MONGODB_URI=<mongodb uri | default local = mongodb://localhost:27017 >
DB_NAME=<your database name>
PORT=<port eg: 9000>
CLIENT_URL=<your frontend url, default: http://localhost:3000>
SESSION_SECRET=<any secret key>
SESSION_NAME=<any name you want>
FIREBASE_PROJECT_ID=<firebase project id found on your firebase config settigs>
FIREBASE_STORAGE_BUCKET_URL=<firebase bucket url found on your firebase config settigs>
GOOGLE_APPLICATION_CREDENTIALS=<if you haven't set the ENV variable in your machine, you can set the relative path of the json file here>
FACEBOOK_CLIENT_ID=<you app client id>
FACEBOOK_CLIENT_SECRET=<you app client secret>
GITHUB_CLIENT_ID=<you app client id>
GITHUB_CLIENT_SECRET=<you app client id>

You can get your Facebook client id/secret here Facebook for developers and for GitHub here Register Github OAuth App and set the necessary env vars above.

After doing the steps above, you have to run your Mongo Server and finally you can now run both ends simultaneously by running:

$ npm start

Or you can run them individually

$ npm run start-client // frontend
$ npm run start-server // backend

// Or you can change to individual directory then run
$ cd frontend // or cd server
$ npm start

Deployment

You can deploy your react app in Vercel or whatever your preferred deployment platform. And for the backend, you can deploy your server in Heroku

Screenshots

Foodie screenshot Foodie screenshot Foodie screenshot Foodie screenshot