We developed a social network website inspired by Instagram. The project includes a website for users and another for administrators using a NoSQL database. The user site provides all the basic features of a social network such as posting, liking, commenting on posts, as well as following, messaging, etc. between users. The admin site allows for statistical analysis and management of content such as posts, users, user reports, and more. In addition, using graph theory and link prediction algorithms, we employ four link prediction algorithms based on node similarity: Common Neighbor, Jaccard, Adamic-Adar, and Katz Index.
- This project is used to serve as a final term project for two courses in the Information Systems department at UIT: Web Application Development - IS207 (9.5/10) and Social Network - IS353 (9/10)
ID | Name | Contribution % | |
---|---|---|---|
21522791 | Nguyễn Hoàng Việt | Nguyễn Hoàng Việt | 100 |
21520400 | Nguyễn Hoàng Phúc | Nguyễn Hoàng Phúc | 100 |
- Frontend: React, Redux, Bootstrap
- Backend: NodeJS, ExpressJS, FastAPI
- Real-time: Socket.IO
- Database: MongoDB
- Graph Theory & Link Prediction: NetworkX
- Login / Register (API Token)
- Create/Like/Comment/Report Posts
- Follow/Search/View Other Users' Profiles
- Real-time Notifications/Messaging/Calling
- Manage Own Profile
- Dashboard
- Manage Posts
- Manage Users
- Manage Post Reports
User Interface
- Login
- Home Page
- Create Post
- Comment on Post
- Search and Explore
- Messaging
- Notifications and Profile
Admin Interface
- Dashboard
- Manage Posts
- Manage Users
- User Statistics and Send Email
- Manage Post Reports
- Node.js
- npm or yarn
- Python 3.x (for FastAPI and NetworkX)
- MongoDB (local or cloud instance)
- Clone the repository and navigate to the client directory:
git clone https://github.com/NHViet03/Web_Social_Network_with_Link_Prediction cd /Web_Social_Network_with_Link_Prediction/client
- Install dependencies:
npm install
- Start the client frontend server:
npm start
- Navigate to the admin directory and install dependencies:
cd /Web_Social_Network_with_Link_Prediction/admin npm install
- Start the admin frontend server:
npm start
- Navigate to the backend directory and Install dependencies:
cd /Web_Social_Network_with_Link_Prediction npm install
- Set up environment variables, create a .env file with:
MONGODB_URL=your_mongodb_connection_string ACCESS_TOKEN_SECRET=your_access_key REFRESH_TOKEN_SECRET=your_refresh_key
- Start the backend server:
npm start
- Install FastAPI, NetworkX and required libraries:
pip install fastapi uvicorn networkx npm install
- Navigate to the FastAPI directory:
cd /Web_Social_Network_with_Link_Prediction/fastAPIServer
- Start the FastAPI server::
python -m uvicorn index:app --reload