A full-stack web application designed for healthcare professionals to create, manage, and distribute dynamic medical questionnaires, and for patients to fill and submit them. Built using React.js for the frontend, Java Spring Boot for the backend, and PostgreSQL for persistent data storage.
-
👨⚕️ Doctor Interface
- Create, update, and manage structured questionnaires
- Define sections, questions, and custom response types (radio, checkbox, text, number)
- Add multiple formulas tied to questionnaires (e.g., scoring systems)
-
🧑⚕️ Patient Interface
- Fetch and fill assigned questionnaires
- Validation for different input types (text, numeric ranges, multiple choices)
- Submit responses linked to a questionnaire ID
-
🧠 Custom Response Types
- Flexible definition of response scales
- Reusable across multiple questions
-
🗃️ Database Architecture
- Designed with normalized entities (Questionnaire, Question, Section, ResponseType, Formula, etc.)
- Supports relational consistency and scalability
| Layer | Technology |
|---|---|
| Frontend | React.js, TailwindCSS |
| Backend | Spring Boot (Java 17+) |
| Database | PostgreSQL |
| Tools | IntelliJ IDEA, Postman, GitHub |
- Java 17+
- Node.js & npm
- PostgreSQL (v13+ recommended)
- IntelliJ IDEA or another preferred IDE
git clone https://github.com/your-username/medical-questionnaire-system.git cd PROMise
cd backend
Configure your PostgreSQL connection in src/main/resources/application.properties:
spring.datasource.url=jdbc:postgresql://localhost:5432/questionnaire_db spring.datasource.username=postgres spring.datasource.password=-------- spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect spring.jpa.properties.hibernate.format_sql=true
./mvnw spring-boot:run
cd frontend npm install npm run dev