This repository contains the backend for a CrowdFunding application built in Java. It manages project campaigns, user authentication, pledges, and more, providing the core logic and RESTful APIs for the platform.
- User registration, authentication, and profile management
- Project creation, editing, and exploration
- Pledge management: users can support projects
- Administrative endpoints for campaign management
- Secure data handling and validation
- Configurable via external properties
- JWT-based authentication using Spring Security
- Email notifications via JavaMail
- Real-time notifications via WebSocket and Redis
- External API integration for KYC verification
- Language: Java
- Framework: Spring Boot
- Database: PostgresSQL
- RESTful API
- Spring Security (JWT)
- JavaMail
- WebSocket (with Redis pub/sub for real-time notifications)
- External API integration (KYC verification)
Follow these steps to set up and run the project locally:
- Java 17 or newer
- Maven or Gradle
- A supported database (see configuration below)
- Redis server (for real-time notifications)
- SMTP server (for email notifications)
- Access to external KYC API
git clone https://github.com/sujal58/CrowdFunding-backend.git
cd CrowdFunding-backend- Find the file
properties.example.ymlin the repository. - Copy it to a new file named
application.yml(or as required by your framework). - Edit the new file and fill in values for:
- Database access
- JWT secrets
- Email credentials (JavaMail)
- Redis configuration
- External KYC API credentials & endpoints
./gradlew build./gradlew bootRunThe backend server will start on the port specified in your configuration (default: 8080).
- Ensure Redis is running.
- Connect your front-end client to the WebSocket endpoint as specified in your configuration.
- Ensure the external API credentials and endpoints are correctly set up in your configuration.
- Use provided endpoints to trigger and check KYC verification flow.
Refer to the codebase or generated documentation (e.g., Swagger UI) for details on available endpoints.
See properties.example.yml for all configurable properties and an example structure.
- Fork the repository
- Create a new branch for your feature or fix
- Commit your changes with descriptive messages
- Open a pull request
(Add your license details here)