https://github.com/xoraus/cyberscribex
CyberScribeX integrates Posts and Comments management with robust Authentication, Authorization, and Category organization through RESTful APIs, fortified by JWT token-based security.
https://github.com/xoraus/cyberscribex
aws jwt-authentication mysql rest-api spring-boot swagger-documentation
Last synced: 3 months ago
JSON representation
CyberScribeX integrates Posts and Comments management with robust Authentication, Authorization, and Category organization through RESTful APIs, fortified by JWT token-based security.
- Host: GitHub
- URL: https://github.com/xoraus/cyberscribex
- Owner: xoraus
- Created: 2024-04-07T15:16:34.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-17T11:33:39.000Z (about 2 years ago)
- Last Synced: 2025-03-03T13:25:05.476Z (over 1 year ago)
- Topics: aws, jwt-authentication, mysql, rest-api, spring-boot, swagger-documentation
- Language: Java
- Homepage:
- Size: 396 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🚀 CyberScribeX 🖋️
Welcome to CyberScribeX! The ultimate Blogging Application API project, where creativity meets technology. 🌐✨
## 📖 Introduction
This project is aimed at developing a robust blogging application with a focus on efficient Posts and Comments management, user Authentication and Authorization, and Category organization. The application is built with RESTful APIs to ensure seamless integration and scalability.
## High-Level Requirements
1. **Posts Management**: Create, Read, Update, and Delete Posts with Pagination and Sorting Support.
2. **Comments Management**: Create, Read, Update, and Delete Comments for Blog Posts.
3. **Authentication and Authorization**: Implement Registration, Login, and Security measures.
4. **Category Management**: Create, Read, Update, and Delete Categories.
## Swagger Docs
The project includes comprehensive Swagger documentation, providing detailed insights into the available REST APIs and their usage.

## ✨ Features
- **Post Management:**
- Create, retrieve, update, and delete blog posts 📝🔄
- Associate posts with categories and users 🤝
- View posts by user, category, or search by keywords 🔍
- Upload and serve post images 🌅
- Delete, update, and retrieve post details 📌
- **Category Management:**
- Create, retrieve, update, and delete blog categories 🗂️
- **Comment Management:**
- Add comments to blog posts 💬
- Retrieve, update, and delete comments 🗑️
- **Authentication:**
- Authenticate users and generate JWT tokens 🛡️
- Register new users 📝
## Exceptions Handling and Validations
1. Handle exceptions and errors, returning proper error responses to the client.
2. Validate REST API requests and send validation error responses to the client.
## Securing REST APIs
1. Secure REST APIs using Database Authentication.
2. Implement LogIn/SignIn REST API.
3. Implement Register/SignUp REST API.
4. Use JWT (JSON Web Token) token-based Authentication to secure the REST APIs.
5. Implement Role-based security with ADMIN and USER roles.
## 💻 Usage
To harness the power of these APIs, make HTTP requests to the specified endpoints using the appropriate methods (GET, POST, PUT, DELETE). Don't forget your authentication tokens!
Certainly! For a Spring Boot project in IntelliJ, the steps would be different. Here's the modified installation section:
## 🛠️ Installation
1. **Clone the repository:**
- Open IntelliJ IDEA and choose "Checkout from Version Control" > "Git".
- Enter your Git repository URL and click "Clone."
2. **Import the project in IntelliJ IDEA:**
- Open IntelliJ IDEA.
- Choose "File" > "Open" and select the cloned project directory.
3. **Build the project:**
- IntelliJ IDEA will automatically detect the project's build file (e.g., `pom.xml` for Maven).
- Click "Build" > "Build Project" to download dependencies and build the project.
4. **Configure application properties:**
- If your application relies on external configurations or properties, configure them in the `application.properties` or `application.yml` file. For example, database connection details.
5. **Run the application:**
- Find the main class that contains the `main` method (usually annotated with `@SpringBootApplication`).
- Right-click on the class and choose "Run" to start the Spring Boot application.
6. **Verify the application:**
- Open a web browser and go to `http://localhost:8080` (or the port specified in your application). You should see the application running.
7. **Explore APIs:**
- Use tools like Postman or Swagger UI to explore and test the available APIs.
**Note:** Ensure you have a compatible JDK installed on your system, and IntelliJ IDEA is configured to use that JDK.
## 🤝 Contributing
We welcome contributions from the community. If you find a bug or have an enhancement in mind, please open an issue or submit a pull request.
## 📄 License
This project is licensed under the [MIT License](LICENSE). Feel free to unleash your creativity!