{"id":24684829,"url":"https://github.com/devanshukushwah/forms-app-backend","last_synced_at":"2026-04-20T05:35:26.740Z","repository":{"id":274313367,"uuid":"922540855","full_name":"devanshukushwah/forms-app-backend","owner":"devanshukushwah","description":"About FormsApp is a web-based application that allows users to create, submit, and track forms.","archived":false,"fork":false,"pushed_at":"2025-03-16T23:56:56.000Z","size":247,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-17T00:28:50.147Z","etag":null,"topics":["java","kafka","keycloak","postgresql","spring-boot"],"latest_commit_sha":null,"homepage":"https://forms.makeitcoder.com/admin","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devanshukushwah.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2025-01-26T13:48:24.000Z","updated_at":"2025-03-15T19:19:02.000Z","dependencies_parsed_at":"2025-02-15T13:22:24.157Z","dependency_job_id":"97647313-8534-41db-a32e-586038c3ce1f","html_url":"https://github.com/devanshukushwah/forms-app-backend","commit_stats":null,"previous_names":["devanshukushwah/forms-app-backend"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devanshukushwah%2Fforms-app-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devanshukushwah%2Fforms-app-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devanshukushwah%2Fforms-app-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devanshukushwah%2Fforms-app-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devanshukushwah","download_url":"https://codeload.github.com/devanshukushwah/forms-app-backend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244863896,"owners_count":20523062,"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":["java","kafka","keycloak","postgresql","spring-boot"],"created_at":"2025-01-26T15:16:50.942Z","updated_at":"2026-04-20T05:35:26.721Z","avatar_url":"https://github.com/devanshukushwah.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Forms Backend Application\n\nFormsApp is a web-based application that allows users to create, submit, and track forms. It provides functionalities such as form creation, field definition, form submission, and form response tracking, all using RESTful APIs. The application supports user authentication, and forms can be dynamically generated and managed.\n\n**App URL**: https://forms.makeitcoder.com/admin\n\n## Flow\n![flow](https://raw.githubusercontent.com/devanshukushwah/forms-app-backend/refs/heads/main/images/flow.svg)\n## Application Screenshot\n![Mockup](https://raw.githubusercontent.com/devanshukushwah/cdn/refs/heads/main/forms-app/images/forms-app-mockup.jpg)\n\n## Application Repositories\n- [Form App Angular UI](https://github.com/devanshukushwah/forms-app-ui)\n- [Form App Backend Application](https://github.com/devanshukushwah/forms-app-backend)\n- [Form App Kafka Consumer](https://github.com/devanshukushwah/forms-app-consumer)\n\n## Features\n\n- Spring MVC \u0026 DTO Design pattern.\n- Kafka Producer.\n- Redis Cache.\n- Cross-origin resource sharing (CORS).\n- Swagger UI (API Documentation).\n- Spring Aspect Oriented Programming (AOP).\n- Spring Security (JWT).\n- Spring JPA (Hibernate ORM).\n- Database Transaction handling.\n- Actuators (Production ready endpoints).\n- Log4j2 logging (File \u0026 Console based).\n- Junit \u0026 Mockito (Unit Testing \u0026 Mocking Bean).\n- Create, Read, Update \u0026 Delete Operation (CRUD).\n- Handle Multithreading.\n- Global Exception Handling.\n- Download CSV File (Form Responses).\n- Cross Origin Configuration.\n- Environment based beans handle (local, dev, qa \u0026 prod).\n- Flag based beans handle (For disable kafka).\n- Custom Exception.\n- Custom Annotation.\n- Custom Date formatting.\n- Custom Id generation for Form.\n\n## Basic Details\n\n- **Form Management**: Create and update forms with customizable fields.\n- **Form Submission**: Allows users to submit forms.\n- **Form Responses**: Fetch responses for a specific form.\n- **Authentication**: Secured endpoints using JWT (JSON Web Token) authentication.\n- **Unique Form ID Generation**: Automatically generates unique form IDs using date-based patterns.\n- **Form Field Customization**: Ability to create different types of fields (text, radio, checkbox, etc.) and configure attributes.\n\n## Technologies Used\n\n- **Backend**: Java 21, Spring Boot 3\n- **Database**: Relational Database (Hibernate + JPA)\n- **Authentication**: OAuth2, JWT (JSON Web Token)\n- **API Documentation**: Swagger (or OpenAPI)\n- **Testing**: JUnit, Mockito\n- **Logging**: Log4J2\n\n## Changelogs\n\n### 2.2.0\n- Redis cache\n\n### 2.1.0\n- Stable version\n\n### 2.0.0\n- Updated to `JDK 21` and `Springboot 3.4.2`\n\n### 1.0\n- Built using `JDK 8` and `Springboot 2.7.18`\n\n## Installation\n\n1. **Clone the repository**\n\n   ```bash\n   git clone https://github.com/devanshukushwah/forms-app-backend.git\n   cd forms-app-backend\n   ```\n    \n2. You can run the application locally and application will be available at http://localhost:9080/.\n    \n3. Ensure that your database is configured correctly in the application.properties file. You can modify it to match your database settings.\n    \n\nAPI Documentation\n-----------------\n\nYou can access the Swagger-based API documentation after starting the application:\n\n*   **Base URL**: http://localhost:9080/\n    \n*   **Swagger UI**: http://localhost:9080/swagger-ui.html\n\nContributing\n------------\n\nContributions are welcome! If you find a bug or want to add a new feature, feel free to fork the repository and submit a pull request.\n\nLicense\n-------\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\nAcknowledgements\n----------------\n\n*   [Spring Boot](https://spring.io/projects/spring-boot) for building the application.\n    \n*   [JWT](https://jwt.io/) for user authentication.\n    \n*   [Hibernate](https://hibernate.org/) for ORM (Object-Relational Mapping).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevanshukushwah%2Fforms-app-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevanshukushwah%2Fforms-app-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevanshukushwah%2Fforms-app-backend/lists"}