https://github.com/galileo680/networkingplatform
A networking platform similar to LinkedIn, that allows users to manage profiles, skills, education, job postings, and more.
https://github.com/galileo680/networkingplatform
backend java jwt-authentication linkedin-clone postgresql rest-api spring-boot sql
Last synced: about 2 months ago
JSON representation
A networking platform similar to LinkedIn, that allows users to manage profiles, skills, education, job postings, and more.
- Host: GitHub
- URL: https://github.com/galileo680/networkingplatform
- Owner: galileo680
- Created: 2025-01-28T21:57:38.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-04-02T23:30:39.000Z (about 1 year ago)
- Last Synced: 2025-04-03T00:25:39.740Z (about 1 year ago)
- Topics: backend, java, jwt-authentication, linkedin-clone, postgresql, rest-api, spring-boot, sql
- Language: Java
- Homepage:
- Size: 129 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
Networking Platform π»
Technologies β’
Features β’
Getting Started β’
API Endpoints
A networking platform that allows users to manage profiles, skills, education, job postings, and more.
---
π» Technologies
- Java (Spring Boot)
- Spring Data JPA
- Spring Security
- JWT
- PostgreSQL
- Maven
---
β¨ Features
- **π§βπΌ User Management**
- Register
- Authenticate
- Update
- Manage users
- **π€ User Profiles**
- Maintain detailed profiles
- Add skills, education, and work experience
- **π’ Jobs & Companies**
- Post job openings
- Search available jobs
- Create, update, or remove companies
- **π‘ Endorsements**
- Endorse other usersβ skills
- Showcase professional strengths
- **π¬ Connections & Chats**
- Send connection requests
- Engage in private chats
- **π Posts & Comments**
- Create posts in a social feed
- Comment on and like posts
- **π Advanced Administration**
- Manage roles
- Moderate posts and comments
- Review system statistics
---
π Getting Started
Below are some steps to help you set up and run the project locally.
Prerequisites
- Git
- Spring Boot
- PostgreSQL (or an alternative database)
Cloning
```bash
git clone https://github.com/galileo680/networking-platform.git
```
Config .env or application.properties
Use an appropriate configuration file to set environment variables or credentials:
```bash
spring.datasource.url=jdbc:postgresql://localhost:5432/networking_platform
spring.datasource.username=DB_USER
spring.datasource.password=DB_PASSWORD
jwt.secret=JWT_SECRET
```
Running
1. Navigate to the project directory:
```bash
cd networking-platform
```
2. Build the project
```bash
mvn clean install
```
3. Run the Spring Boot application:
```bash
mvn spring-boot:run
```
π API Endpoints
Below is a high-level overview of the main API routes:
1. Users & Authentication
POST /api/auth/register β register a new user
POST /api/auth/login β user login
POST /api/auth/logout β user logout
POST /api/auth/forgot-password β password recovery
GET /api/users/{id} β get user data
PUT /api/users/{id} β update user data
GET /api/admin/users β get all users
PUT /api/admin/users/{id}/status β block/unblock a user
2. User Profile
GET /api/profiles/{id} β get profile data
PUT /api/profiles/{id} β update profile data
GET /api/profiles/{id}/skills β get profile skills
POST /api/profiles/{id}/skills β add skill to profile
DELETE /api/profiles/{id}/skills β remove skill from profile
GET /api/profiles/search?query=... β search profiles
3. Education
GET /api/profiles/{id}/educations β get education records
POST /api/profiles/{id}/educations β add education record
PUT /api/profiles/{id}/educations/{educationId} β update education
DELETE /api/profiles/{id}/educations/{educationId} β delete education
4. Work Experience
GET /api/profiles/{id}/experiences β get experiences
POST /api/profiles/{id}/experiences β add experience
PUT /api/profiles/{id}/experiences/{experienceId} β update experience
DELETE /api/profiles/{id}/experiences/{experienceId} β delete experience
5. Skills
GET /api/skills β get all skills
GET /api/skills/{id} β get skill by ID
POST /api/skills β create skill (admin)
PUT /api/skills/{id} β update skill (admin)
DELETE /api/skills/{id} β delete skill (admin)
GET /api/skills/search?query=... β search skills
6. Endorsements
GET /api/profiles/{profileId}/skills/{skillId}/endorsements β get endorsements for a skill
POST /api/profiles/{profileId}/skills/{skillId}/endorsements β add endorsement
DELETE /api/endorsements/{id} β remove endorsement
7. Companies
GET /api/companies β get all companies
GET /api/companies/{id} β get company by ID
POST /api/companies β create company
PUT /api/companies/{id} β update company
DELETE /api/companies/{id} β delete company
GET /api/companies/search?query=... β search companies
8. Job Postings
GET /api/jobs β get all job postings
GET /api/jobs/{id} β get job posting by ID
POST /api/jobs β create job posting
PUT /api/jobs/{id} β update job posting
DELETE /api/jobs/{id} β delete job posting
GET /api/jobs/search?query=...&location=... β search job postings
GET /api/companies/{companyId}/jobs β get job postings by company
9. Job Applications
GET /api/users/{userId}/applications β get user applications
GET /api/jobs/{jobId}/applications β get applications for a job
POST /api/jobs/{jobId}/applications β apply for a job
PUT /api/applications/{id}/status β update application status
10. User Connections
GET /api/users/{userId}/connections β get user connections
GET /api/users/{userId}/connections/pending β get pending invites
POST /api/users/{userId}/connections β send connection invite
PUT /api/connections/{id}/accept β accept invitation
PUT /api/connections/{id}/reject β reject invitation
DELETE /api/connections/{id} β remove connection
11. Chats & Messages
GET /api/users/{userId}/chats β get user chats
POST /api/chats β create new chat
POST /api/chats/{chatId}/participants β add participant
DELETE /api/chats/{chatId}/participants/{userId} β remove participant
GET /api/chats/{chatId}/messages β get messages in a chat
POST /api/chats/{chatId}/messages β send message
DELETE /api/messages/{id} β remove message
12. Posts, Comments & Likes
GET /api/feed β get feed of posts
GET /api/users/{userId}/posts β get user posts
POST /api/posts β create post
PUT /api/posts/{id} β update post
DELETE /api/posts/{id} β delete post
GET /api/posts/{postId}/comments β get comments for a post
POST /api/posts/{postId}/comments β add comment
PUT /api/comments/{id} β update comment
DELETE /api/comments/{id} β delete comment
POST /api/posts/{postId}/likes β like a post
DELETE /api/posts/{postId}/likes β unlike a post
GET /api/posts/{postId}/likes β get who liked the post
13. Administration
GET /api/admin/statistics β get system statistics
GET /api/admin/roles β manage roles
PUT /api/admin/users/{userId}/roles β assign user roles
PUT /api/admin/posts/{postId}/moderate β moderate posts
PUT /api/admin/comments/{commentId}/moderate β moderate comment