Skip to content

galileo680/NetworkingPlatform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Networking Platform 💻

TechnologiesFeaturesGetting StartedAPI 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

Cloning

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:
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:
cd networking-platform
  1. Build the project
mvn clean install
  1. Run the Spring Boot application:
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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

About

A networking platform similar to LinkedIn, that allows users to manage profiles, skills, education, job postings, and more.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages