/mini-facebook

A Mini Social Network, with the idea from Facebook

Primary LanguageTypeScriptMIT LicenseMIT

icon
Mini Facebook

A Mini Social Network, with the idea from Facebook.

contributors last update forks stars open issues license

Documentation โ€ข Report Bug โ€ข Request Feature


๐Ÿ“– Table of Contents

Key Features

  • Sign In/ Up: allow user to create and login to their account with: their own account or Gmail
  • Profile: user can update their information and customize their profile
  • Posts: user can create posts with status and images
  • Post interact: Interact with other posts such as like, comment
  • Chat: communicate with other users via chat box or chatbot
  • Open network: user can send friend request to other users and interact with them such as: unfriend, block

Tech Stack

  • Frontend:
    • UI framework: NextJS
    • CSS framework: Tailwind CSS
    • Language: TypeScript
  • Backend:
    • Language: Python
    • Framework: Django
    • Database: PostgreSQL
  • Operations:
    • Deploy:
      • Front-end: Netlify
      • Back-end: Render
    • CI/CD: Github Actions
    • Monitoring: Prometheus, Grafana

Getting Started

Project Structure

$ tree src
src
โ”œโ”€โ”€ common
โ”‚   โ”œโ”€โ”€ components
โ”‚   โ”‚   โ””โ”€โ”€ marketing
โ”‚   โ”‚       โ”œโ”€โ”€ Card
โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ Card.module.css
โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ Card.tsx
โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ index.ts
โ”‚   โ”‚       โ”œโ”€โ”€ Footer
โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ Footer.module.css
โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ Footer.tsx
โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ index.ts
โ”‚   โ”‚       โ””โ”€โ”€ SimpleGrid
โ”‚   โ”‚           โ”œโ”€โ”€ SimpleGrid.module.css
โ”‚   โ”‚           โ”œโ”€โ”€ SimpleGrid.tsx
โ”‚   โ”‚           โ””โ”€โ”€ index.ts
โ”‚   โ””โ”€โ”€ styles
โ”‚       โ””โ”€โ”€ globals.css
โ”œโ”€โ”€ modules
โ”‚   โ””โ”€โ”€ home
โ”‚       โ”œโ”€โ”€ Home.module.css
โ”‚       โ”œโ”€โ”€ Home.tsx
โ”‚       โ””โ”€โ”€ index.ts
โ””โ”€โ”€ pages
    โ”œโ”€โ”€ _app.tsx
    โ”œโ”€โ”€ api
    โ”‚   โ””โ”€โ”€ hello.ts
    โ””โ”€โ”€ index.tsx

Prerequisites

  • Python: >= 3.10.7. Install here.
  • Nodejs: >= 18.17.0

Environment Variables

To run this project, you need to add the following environment variables to your .env file in /:

  • App configs: Create .env file in ./

    ...and add the following environment variables to it:

    Example:

    ... # environment variables

You can also check out the file .env.example to see all required environment variables.

Note: If you want to use this example environment, you need to rename it to .env.

Installation

# Clone this repository
git clone https://github.com/QuanBlue/mini-facebook

Note If you're using Linux Bash for Windows, see this guide or use node from the command prompt.

Roadmap

  • Sign In/ Up
    • User account (username, password)
    • Gmail
  • Profile
    • Init after Sign Up
    • Update Profile
  • Posts
    • Create: status, images
    • Interaction:
      • Like
      • Comment
  • Chat (socket)
    • Between users
    • Chatbot (OpenAI API)
  • Friend request, unfriend, block
  • CI/CD

FAQ

  1. Responsive design to the parent instead of viewport

Contributors

Contributions are always welcome!

Credits

This software uses the following open source packages:

License

Distributed under the MIT License. See LICENSE for more information.


Bento @quanblue  ยท  GitHub @QuanBlue  ยท  Gmail quannguyenthanh558@gmail.com