You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Resume Builder API
## Description
Resume Builder API is a backend service built using Spring Boot. It provides functionalities for user authentication, resume creation, email notifications, payment processing, and more. The application uses MongoDB as the database and integrates with external services like Cloudinary for file uploads and Razorpay for payment processing.
## Features
- User Authentication (JWT-based)
- Resume creation and management
- Email notifications
- Payment processing
- Cloudinary integration for file uploads
- Exception handling with a global exception handler
## Tech Stack
- **Java**: Programming language
- **Spring Boot**: Backend framework
- Spring Boot Starter Web
- Spring Boot Starter Data MongoDB
- Spring Boot Starter Validation
- Spring Boot Starter Mail
- **MongoDB**: NoSQL database
- **JWT**: For authentication
- **Cloudinary**: For file uploads
- **Razorpay**: For payment processing
- **Lombok**: To reduce boilerplate code
## Project Structure
```
src/
main/
java/
in/
bushansirgur/
resumebuilderapi/
config/ # Configuration files
controller/ # REST controllers
document/ # MongoDB documents
dto/ # Data Transfer Objects
exception/ # Exception handling
repository/ # MongoDB repositories
security/ # Security configurations
service/ # Service layer
util/ # Utility classes
resources/
application.properties # Application configuration
static/ # Static resources
templates/ # Email templates
```
## Configuration
### MongoDB
Update the `application.properties` file with your MongoDB URI:
```properties
spring.data.mongodb.uri=mongodb://localhost:27017/resumebuilder_v2
```
### Email
Configure the email settings in `application.properties`:
```properties
spring.mail.host=smtp-relay.brevo.com
spring.mail.port=587
spring.mail.username=your-email@example.com
spring.mail.password=your-email-password
```
### Cloudinary
Add your Cloudinary credentials:
```properties
cloudinary.cloud-name=your-cloud-name
cloudinary.api-key=your-api-key
cloudinary.api-secret=your-api-secret
```
### JWT
Set a secure JWT secret key:
```properties
jwt.secret=your-secure-jwt-secret-key
jwt.expiration=604800000
```
### Razorpay
Add Razorpay credentials:
```properties
razorpay.key.id=your-razorpay-key-id
razorpay.key.secret=your-razorpay-key-secret
```
## Running the Application
1. Clone the repository:
```bash
git clone
```
2. Navigate to the project directory:
```bash
cd resumebuilderapi
```
3. Build the project using Maven:
```bash
./mvnw clean install
```
4. Run the application:
```bash
./mvnw spring-boot:run
```
## Endpoints
### Authentication
- `POST /auth/register`: Register a new user
- `POST /auth/login`: Login and receive a JWT token
### Resume
- `GET /resume`: Get all resumes
- `POST /resume`: Create a new resume
### Payments
- `POST /payment`: Process a payment
### Email
- `POST /email/send`: Send an email
## License
This project is licensed under the MIT License.# Secure-Resume-Builder-API