{"id":24404170,"url":"https://github.com/mdmazidulislam26/sm-web","last_synced_at":"2026-04-15T15:32:29.678Z","repository":{"id":269025263,"uuid":"906186363","full_name":"mdmazidulislam26/SM-WEB","owner":"mdmazidulislam26","description":"The **SM-WEB** is an open-source initiative to create a fully functional social media application backend using Spring Boot. It is tailored for developers who want to learn about modern backend development practices, including authentication, database integration, and RESTful API design. ","archived":false,"fork":false,"pushed_at":"2025-02-19T14:14:13.000Z","size":165,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-13T07:44:00.343Z","etag":null,"topics":["globalexceptionhandler","jpa","jpa-hibernate","lombok","mysql-database","spring-boot","spring-security-jwt"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mdmazidulislam26.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-20T10:47:26.000Z","updated_at":"2025-02-19T14:14:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"6a4402f3-1cda-4bfb-aa7d-515fcdfc6e2e","html_url":"https://github.com/mdmazidulislam26/SM-WEB","commit_stats":null,"previous_names":["mdmazidulislam26/sm-web"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mdmazidulislam26/SM-WEB","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdmazidulislam26%2FSM-WEB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdmazidulislam26%2FSM-WEB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdmazidulislam26%2FSM-WEB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdmazidulislam26%2FSM-WEB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdmazidulislam26","download_url":"https://codeload.github.com/mdmazidulislam26/SM-WEB/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdmazidulislam26%2FSM-WEB/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262685443,"owners_count":23348420,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["globalexceptionhandler","jpa","jpa-hibernate","lombok","mysql-database","spring-boot","spring-security-jwt"],"created_at":"2025-01-20T04:00:32.657Z","updated_at":"2025-10-04T21:17:03.806Z","avatar_url":"https://github.com/mdmazidulislam26.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Introduction to Java Spring Boot\n\n---\n\nThis repository contains the source code for a **Full-Stack Social Media Web Application** \nbuilt using **Java Spring Boot** for the backend. \nThe project is designed to provide social media features, including user authentication, posts, comments, reels, messaging, and more.\n\n---\n\n## Features\n- **User Authentication**\n  - Sign up and login with JWT-based authentication.\n  - Secure password encryption with BCrypt.\n- **Posts Management**\n  - Create, update, delete, and view posts.\n  - Like and save posts.\n- **Comments**\n  - Add comments to posts.\n  - Like comments.\n- **Reels and Stories**\n  - Add, view, and manage reels and stories.\n- **Messaging and Chat**\n  - Send and receive messages in real-time.\n  - Manage chatrooms.\n- **Follow System**\n  - Follow and unfollow other users.\n\n---\n\n## Technologies Used\n\n### Backend\n- **Java 17**\n- **Spring Boot 3.3.6**\n  - Spring Security\n  - Spring Data JPA\n  - Spring Web\n  - Spring Boot DevTools\n- **JWT** for token-based authentication.\n- **Lombok** for boilerplate code reduction.\n- **MySQL** as the relational database.\n\n### Dependencies\n- `spring-boot-starter-web`\n- `spring-boot-starter-security`\n- `spring-boot-starter-data-jpa`\n- `mysql-connector-j`\n- `jjwt-api`, `jjwt-impl`, `jjwt-jackson`\n- `lombok`\n\n---\n\n## Installation and Setup\n\n### Prerequisites\n1. **Java Development Kit (JDK)** version 17 or higher.\n2. **MySQL Server** installed and running.\n3. **Maven** installed.\n\n### Steps\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/your-username/mazidul-social-media.git\n   cd mazidul-social-media\n   ```\n\n2. Set up the MySQL database:\n   - Create a database named `social_media`.\n   - Update the `application.properties` file with your MySQL credentials:\n     ```properties\n     spring.datasource.url=jdbc:mysql://localhost:3306/social_media\n     spring.datasource.username=YOUR_USERNAME\n     spring.datasource.password=YOUR_PASSWORD\n     spring.jpa.hibernate.ddl-auto=update\n     ```\n\n3. Build and run the application:\n   ```bash\n   mvn clean install\n   mvn spring-boot:run\n   ```\n\n4. The application will run at `http://localhost:8080`.\n\n---\n\n## API Endpoints\n\n### Authentication\n- **POST** `/auth/signup` - Register a new user.\n- **POST** `/auth/signin` - Login and receive a JWT token.\n\n### User\n- **GET** `/api/users` - Fetch all users.\n- **GET** `/api/users/{userId}` - Fetch a user by ID.\n- **PUT** `/api/users` - Update user details.\n- **PUT** `/api/users/follow/{userId}` - Follow a user.\n\n### Posts\n- **POST** `/api/posts` - Create a new post.\n- **GET** `/api/posts` - Get all posts.\n- **GET** `/api/posts/{postId}` - Get a specific post by ID.\n- **DELETE** `/api/posts/{postId}` - Delete a post.\n- **PUT** `/api/posts/like/{postId}` - Like a post.\n\n### Comments\n- **POST** `/api/comments/post/{postId}` - Add a comment to a post.\n- **PUT** `/api/comments/like/{commentId}` - Like a comment.\n\n### Chats\n- **POST** `/api/chats` - Create a new chat.\n- **GET** `/api/chats` - Get all chats for the logged-in user.\n\n### Messages\n- **POST** `/api/messages/chat/{chatId}` - Send a message in a chat.\n- **GET** `/api/messages/chat/{chatId}` - Get all messages in a chat.\n\n---\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdmazidulislam26%2Fsm-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdmazidulislam26%2Fsm-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdmazidulislam26%2Fsm-web/lists"}