https://github.com/tienminh25/instagram_clone
Just clone some feature of instagram
https://github.com/tienminh25/instagram_clone
chakra-ui chakra-ui-react express jest nodejs react-router-dom reactjs sequelize sequelize-cli unittest
Last synced: 4 months ago
JSON representation
Just clone some feature of instagram
- Host: GitHub
- URL: https://github.com/tienminh25/instagram_clone
- Owner: TienMinh25
- Created: 2024-02-06T16:23:15.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-17T14:45:30.000Z (about 2 years ago)
- Last Synced: 2025-03-28T05:12:55.574Z (over 1 year ago)
- Topics: chakra-ui, chakra-ui-react, express, jest, nodejs, react-router-dom, reactjs, sequelize, sequelize-cli, unittest
- Language: JavaScript
- Homepage:
- Size: 34.8 MB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Technology and framework used in project clone instagram:
# Front end:
- **ReactJS**
- **Chakra** (provide much more component built, so it allows you to have more time focus features)
- **react-icons** (support multiple icon to use)
- **react-router-dom** (navigation page)
# Back end:
- **NodeJS (expressJS)**
- **Sequelize (ORM) (sequelize, sequelize-cli)**
- Driver adapter: **mysql2**
- **jest** (Unit test), **suppertest** (support test for http/rest api), **sequelize-test-helpers, sinon, chai**(test for db)
- **body-parser** - use to parse incoming request bodies in a middleware before your handlers, available under the req.body property.
- **cookie-parser** - use to parse **Cookie header** and populate **req.cookies** with an object keyed by the cookie names.
- **jsonwebtoken** - in order to use JWT for authentication.
# Features:
- Login, Logout, Register
- Comment, post (edit, create, delete)
- Realtime chat
- Join group
# How to use: π€
## There are 2 ways to run the project
### First way: π«°π«°
- Open your terminal and pull project on main branch into your laptop or PC.
```sh
$ git pull https://github.com/TienMinh25/instagram_clone.git
```
**NOTE:**
- You can also choose your directory you need to pull.
* Then open project on IDE which you prefer then type text below into terminal:
```sh
$ npm install
```
- First, you need a local database (use mysql)
```
Please config root and password for your local database,
then open file .env (./back_end/.env) and modify it.
```
- Run backend
```sh
$ cd back_end
$ npm run dev
```
- Run frontend
```sh
$ cd fron_end
$ npm run dev
```
### Second way: πββοΈπββοΈ (Recommended)
- First, you aslo need to pull project to your device π
- Then you must have docker on your machine, then ensure docker is running
- Open your terminal, make sure you are in the root ~ **/instagram_clone**, then type:
```sh
~//instagram_clone
$ docker-compose up --build
```
- Then open new terminal, and type:
```sh
$ docker exec -it backend_node sh
$ sequelize db:migrate
```
- If you need to termianted that, you just type:
```sh
$ docker-compose down
```
- That's so easy, right πππ
- Open your browser, and type http://localhost:80
# Future Improvements (Planned)
# Author:
```
Name: LΓͺ VΔn TiαΊΏn Minh
Gmail: letienminh2512@gmail.com
```
# Summary: π₯π₯π₯
> Thank you everyone for visiting my repo, please give each one **a star** and you can view this repo as reference. This is also my best practice repo at the moment.