Technologies • Features • Getting Started • API Endpoints
A networking platform that allows users to manage profiles, skills, education, job postings, and more.
- Java (Spring Boot)
- Spring Data JPA
- Spring Security
- JWT
- PostgreSQL
- Maven
-
🧑💼 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
Below are some steps to help you set up and run the project locally.
- Git
- Spring Boot
- PostgreSQL (or an alternative database)
git clone https://github.com/galileo680/networking-platform.gitspring.datasource.url=jdbc:postgresql://localhost:5432/networking_platform
spring.datasource.username=DB_USER
spring.datasource.password=DB_PASSWORD
jwt.secret=JWT_SECRET- Navigate to the project directory:
cd networking-platform- Build the project
mvn clean install- Run the Spring Boot application:
mvn spring-boot:run- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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