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

https://github.com/abdulvahabaa/devconnect-socialmedia

This is a social media website. Users can connect, follow/unfollow, like, comment, and reply to postings. It supports S3 uploads, Light/Dark Modes, and JWT Authentication. Admins can block/unblock users and manage reported posts. The platform offers search, sort, and filter tools, PDF/CSV export, and printing options.
https://github.com/abdulvahabaa/devconnect-socialmedia

aws ec2-instance express-js git jwt-authentication meterial-ui mongodb mongoose nginx node-js react redux-toolkit s3-bucket

Last synced: 3 months ago
JSON representation

This is a social media website. Users can connect, follow/unfollow, like, comment, and reply to postings. It supports S3 uploads, Light/Dark Modes, and JWT Authentication. Admins can block/unblock users and manage reported posts. The platform offers search, sort, and filter tools, PDF/CSV export, and printing options.

Awesome Lists containing this project

README

          

# DevConnect-SocialMedia

> A developer-focused social networking site that enables users to connect, share, and collaborate. Built with modern web technologies for a seamless experience.

## Table of Contents

- [DevConnect-SocialMedia](#devconnect-socialmedia)
- [Table of Contents](#table-of-contents)
- [Video Demo](#video-demo)
- [Features](#features)
- [Technologies Used](#technologies-used)
- [Installation and Setup](#installation-and-setup)
- [Prerequisites](#prerequisites)
- [Environment Setup](#environment-setup)
- [Running the Application](#running-the-application)
- [Usage](#usage)
- [Swagger API Documentation](#swagger-api-documentation)
- [APIs](#apis)
- [Links](#links)

### Video Demo

[link-to-video-demo](https://drive.google.com/file/d/1vejLUkzmSxXgqY5tetKPsg4fin-EIOE0/view?usp=sharing)

## Features

- **Sign Up/Sign In**: Create an account or log in to start using the platform.
- **Profile Management**: Customize your profile, add a bio, and upload a profile picture.
- **Posts**: Create, edit, and delete posts. Interact with posts by liking, commenting, and replying.
- **Real-Time Chat**: Use the chat feature to communicate with other users in real-time.
- **Admin Features**: Admins can manage user accounts and posts, including blocking and unblocking users and handling reported posts.
- **User Interactions**: Connect with other developers by following/unfollowing, liking, commenting, and replying to posts.
- **Real-Time Communication**: Enjoy real-time chat and call functionalities.
- **Media Uploads**: Utilize AWS S3 Bucket for image and data uploads.
- **Customization**: Switch between Light and Dark Modes for better user experience.
- **Security**: Secure JWT Authentication for safe user sessions.
- **Admin Tools**: Admins can block/unblock users and manage reported posts.
- **Data Management**: Advanced search, sort, and filter tools, and export data to PDF and CSV formats.

## Technologies Used

- **Frontend**: React, Material UI, Redux-Toolkit
- **Backend**: Node.js, Express.js
- **Database**: MongoDB
- **Hosting**: AWS EC2, Nginx
- **Storage**: AWS S3 Bucket
- **Authentication**: JWT

## Installation and Setup

### Prerequisites

Before you begin, ensure you have met the following requirements:

- Node.js and npm installed
- MongoDB installed and running
- AWS account for S3 bucket setup

### Environment Setup

1. Clone the repository:

```bash
git clone https://github.com/yourusername/DevConnect-SocialMedia.git
cd DevConnect-SocialMedia
```

2. Install dependencies for the server side:

```bash
cd server
npm install
```

3. Create an `.env` file in the server directory and add the following:

```env
MONGO_URL="YOUR_MONGODB_URI"
JWT_SECRET="YOUR_JWT_SECRET"
PORT=3001
ADMIN_EMAIL="admin@gmail.com"
ADMIN_PASSWORD="admin"
ADMIN_JWT_SECRET="YOUR_ADMIN_JWT_SECRET"
BUCKET_NAME='YOUR_S3_BUCKET_NAME'
BUCKET_REGION='YOUR_BUCKET_REGION'
ACCESS_KEY='YOUR_AWS_ACCESS_KEY_ID'
SECRET_ACCESS_KEY='YOUR_AWS_SECRET_ACCESS_KEY'
```

4. Install dependencies for the client side:

```bash
cd ../client
npm install
```

### Running the Application

1. Start the backend server:

```bash
cd ../server
npm run server
```

2. Start the frontend development server:

```bash
cd ../client
npm start
```

3. Open your browser and navigate to `http://localhost:3000`.

## Usage

### Swagger API Documentation

### APIs

## Links

For further information, feel free to reach out:

- [Project Website](http://www.devconnect.website) *(expired because free period is over)*
- GitHub Repository: [DevConnect-SocialMedia](https://github.com/yourusername/DevConnect-SocialMedia)

---

Thank you for visiting DevConnect-SocialMedia! Happy coding!