Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jgudo/socialgen

A simple facebook/instragram -inspired social media. Rebranding of old project 'Foodie'
https://github.com/jgudo/socialgen

mongodb reactjs social-media-app social-network

Last synced: 2 months ago
JSON representation

A simple facebook/instragram -inspired social media. Rebranding of old project 'Foodie'

Awesome Lists containing this project

README

        

# Social Gen

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

![Heroku](https://heroku-badge.herokuapp.com/?app=socialgeneration) ![Vercel](https://vercelbadge.vercel.app/api/jgudo/socialgen)

## Table of contents

- [Features](#features)
- [Technologies](#technologies)
- [Installation](#installation)
- [Run Locally](#run_local)
- [Deployment](#deployment)
- [Screenshots](#screenshots)

## 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](https://www.mongodb.com/)
- Create [Firebase Project](https://console.firebase.google.com/u/0/) 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=
DB_NAME=
PORT=
CLIENT_URL=
SESSION_SECRET=
SESSION_NAME=
FIREBASE_PROJECT_ID=
FIREBASE_STORAGE_BUCKET_URL=
GOOGLE_APPLICATION_CREDENTIALS=
FACEBOOK_CLIENT_ID=
FACEBOOK_CLIENT_SECRET=
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
```

You can get your Facebook client id/secret here [Facebook for developers](http://developers.facebook.com/) and for GitHub here [Register Github OAuth App](https://github.com/settings/applications/new) 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](http://vercel.app/) or whatever your preferred deployment platform.
And for the backend, you can deploy your server in [Heroku](https://heroku.com)

## Screenshots

![Foodie screenshot](https://raw.githubusercontent.com/jgudo/foodie/master/frontend/src/images/screen1.png)
![Foodie screenshot](https://raw.githubusercontent.com/jgudo/foodie/master/frontend/src/images/screen2.png)
![Foodie screenshot](https://raw.githubusercontent.com/jgudo/foodie/master/frontend/src/images/screen3.png)
![Foodie screenshot](https://raw.githubusercontent.com/jgudo/foodie/master/frontend/src/images/screen4.png)