An open API service indexing awesome lists of open source software.

https://github.com/brayanalmengor04/postify-backend

publishing system. System that allows the functionality of social network publications.
https://github.com/brayanalmengor04/postify-backend

docker docker-compose dockerfile java spring-boot

Last synced: 3 months ago
JSON representation

publishing system. System that allows the functionality of social network publications.

Awesome Lists containing this project

README

          

# πŸš€ Postify - Share & Connect

Welcome to **Postify - Share & Connect**, an interactive web application where users can create posts, comment, and participate in raffles. Engage with others, customize your profile, and enjoy a seamless social experience. πŸ’¬πŸŽ‰

---

## πŸ“Œ Features
- ✍️ **Create & Share**: Post your thoughts and engage with others.
- πŸ’¬ **Comments & Replies**: Interact with posts through comments and replies.
- 🎟️ **Raffles & Rewards**: Participate in exciting raffles.
- 🎨 **Customizable Profiles**: Personalize your experience.

---

## πŸ“‚ Project Structure
```
└── πŸ“src
└── πŸ“main
└── πŸ“java
└── πŸ“com
└── πŸ“brayanalmengor04
└── πŸ“postifyv1 // πŸ“Œ Main backend package
└── πŸ“config // πŸ”’ Security and system configurations
└── SecurityConfig.java
└── πŸ“controller // 🌐 Handles HTTP requests
└── AuthController.java // Authentication
└── CommentController.java // Comments management
└── ReplyController.java // Replies management
└── RoleController.java // Roles and permissions
└── UserController.java // User operations
└── πŸ“dto // πŸ“Œ Data transfer objects (DTOs)
└── CommentDTO.java
└── ReplyDTO.java
└── UserDTO.java
└── πŸ“entity // πŸ“Œ Database entities
└── Comment.java
└── Reply.java
└── Role.java
└── User.java
└── πŸ“enums // 🎭 Enum definitions
└── Permission.java
└── Postifyv1Application.java // πŸš€ Main Spring Boot application
└── πŸ“repository // πŸ—„οΈ Database access interfaces
└── CommentRepository.java
└── ReplyRepository.java
└── RoleRepository.java
└── UserRepository.java
└── πŸ“security // πŸ” Security implementations
└── πŸ“seeder // 🌱 Initial database data
└── DatabaseSeeder.java
└── πŸ“service // βš™οΈ Business logic
└── CommentService.java
└── ICommentService.java
└── ImageService.java
└── IReplyService.java
└── IRoleService.java
└── IUserService.java
└── ReplyService.java
└── RoleService.java
└── UserService.java
└── πŸ“util // πŸ”§ Utility functions
└── πŸ“resources // πŸ“Œ Configuration and static resources
└── application.properties // System settings
└── logback-spring.xml // Logging configuration
└── πŸ“static // Static assets (images, CSS, JS)
└── πŸ“templates // View templates
└── πŸ“test // βœ… Unit and integration tests
└── πŸ“java
└── πŸ“com
└── πŸ“brayanalmengor04
└── πŸ“postifyv1
└── Postifyv1ApplicationTests.java

```

---

## βš™οΈ Tech Stack
| **Category** | **Technologies** |
|----------------|-----------------------------|
| **Frontend** | React, TailwindCSS |
| **Backend** | Spring Boot, REST API |
| **Database** | MySQL 8.0.3 |

---

## πŸš€ Getting Started
### 1️⃣ Clone the repositories
```bash
git clone https://github.com/brayanalmengor04/postify-backend.git
cd postify
```
For the frontend, clone the repository:
```bash
git clone https://github.com/brayanalmengor04/postify-frontend.git
```

### 2️⃣ Backend Setup
```bash
cd backend
mvn spring-boot:run
```

### 3️⃣ Frontend Setup
```bash
cd frontend
npm install
npm run dev
```
---
## πŸ–ΌοΈ Screenshots
### πŸ” Login Page
![Login Page](github/demo/login.jpg)
_Users can log in using their credentials to access the platform._

### πŸ“Š Dashboard
![Dashboard](github/demo/dasboard.png)
_Overview of user activities, including posts, comments, and interactions._

### πŸ’¬ Comments Section
![Comments](github/demo/comentarios.png)
_Users can comment on posts and engage in discussions._

### πŸ†• New User Registration
![New User](github/demo/newuser.png)
_New users can sign up and create an account to start posting._

---

## πŸ“œ API Endpoints
### πŸ” Authentication
| Method | Endpoint | Description |
|--------|------------------------|---------------|
| POST | /auth/signin | User login |
| POST | /auth/signup | User signup |

### πŸ’¬ Comments
| Method | Endpoint | Description |
|--------|----------------------|----------------------|
| GET | /comment | Fetch all comments |
| POST | /comment-add | Create a comment |
| PUT | /comment/{id} | Update a comment |
| DELETE | /comment/{id} | Delete a comment |

### πŸ’¬ Replies
| Method | Endpoint | Description |
|--------|----------------------|-----------------------|
| GET | /reply/all | Fetch all replies |
| POST | /reply/user | Create a reply |
| GET | /reply/user/{userId} | Fetch reply by userID |

### πŸ›‘οΈ Roles
| Method | Endpoint | Description |
|--------|----------------------|-------------------|
| GET | /role | Get all roles |
| POST | /role-add | Add a new role |
| GET | /role/{id} | Get role by ID |
| PUT | /role/{id} | Update a role |
| DELETE | /role/{id} | Delete a role |

---
## πŸ’‘ Contributing
We welcome contributions to make **Postify** more efficient, clean, and maintainable! πŸš€

### πŸ› οΈ How You Can Help
We aim for a **clean code** approach, prioritizing readability, simplicity, and performance. Contributions can include:

- **Refactoring code** to enhance clarity and maintainability.
- **Optimizing database queries** for better performance.
- **Improving API efficiency** to reduce response times.
- **Enhancing security** by following best practices.
- **Writing comprehensive tests** to ensure stability.

### πŸ“ Contribution Guidelines
1. **Fork** the repository 🍴
2. **Create a feature branch** (`git checkout -b improve-backend`) 🌱
3. **Follow best practices** (SOLID principles, DRY, KISS) πŸ“œ
4. **Document your changes** clearly in the code πŸ’‘
5. **Commit changes** (`git commit -m 'Optimized backend query handling'`) πŸ’Ύ
6. **Push to branch** (`git push origin improve-backend`) πŸš€
7. **Submit a Pull Request** with a clear explanation πŸ“©

We encourage meaningful discussions and improvements. Let’s build a scalable and efficient platform together! πŸ”₯
---
## πŸ“œ License
This project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for details.

---

**πŸš€ Join us and start sharing today! Let’s build something amazing together! πŸ”₯**