This project aims to create a comprehensive registry of medical professionals by collecting their details from an external API and storing them in a database. This registry serves as a valuable resource for healthcare organizations, regulatory bodies, and individuals seeking information about medical practitioners.
-
Authentication and Authorization:
- Users can authenticate themselves using username and password and obtain an authentication token.
- JSON Web Tokens (JWT) are used for token-based authentication, and a refresh token mechanism is implemented for token renewal.
-
Data Loading and Fetching:
- The application provides endpoints to load and fetch medical professional data.
- Medical professional details are fetched from an external API using RESTful calls.
- Data loading and fetching operations are performed asynchronously to optimize performance and scalability.
-
Data Persistence:
- Medical professional data is stored in a relational database using JPA (Java Persistence API) entities.
- Data loading operations insert new records into the database, while data fetching operations update existing records with fresh information.
-
Scheduled Tasks:
- Scheduled tasks periodically fetch updated data for medical professionals from the external API.
- These tasks ensure that the registry remains up-to-date with the latest information about medical practitioners.
-
User Authentication:
- Users authenticate themselves using the
/authenticate/tokenendpoint by providing their credentials. - Upon successful authentication, users receive an authentication token and a refresh token.
- Users authenticate themselves using the
-
Data Loading:
- Authorized users can upload batches of medical professional data using the
/load/dataendpoint. - The application processes these requests asynchronously, inserting the provided data into the database.
- Authorized users can upload batches of medical professional data using the
-
Data Fetching:
- Scheduled tasks periodically fetch updated data for medical professionals from the external API.
- The fetched data is processed asynchronously and updated in the database to ensure accuracy and completeness.
- Comprehensive Registry: The application facilitates the creation of a comprehensive registry of medical professionals, consolidating information from multiple sources.
- Timely Updates: Scheduled tasks ensure that the registry is regularly updated with the latest information, maintaining its relevance and reliability.
- Efficient Data Handling: Asynchronous processing and parallel execution of tasks optimize the application's performance and scalability.
- Secure Access: Token-based authentication and authorization mechanisms ensure secure access to the application's functionalities.
- Search and Filtering: Implement search and filtering functionalities to allow users to query the registry based on various criteria.
- Data Enrichment: Integrate additional sources of information to enrich the medical professional data and provide more comprehensive profiles.
- User Management: Enhance user management capabilities to support role-based access control and user-specific preferences.
- Reporting and Analytics: Develop reporting and analytics features to analyze trends and patterns in the medical professional data.
To get started with the project, follow these steps:
npm install
npm run serve
npm run build
npm run lint
This project is licensed under the MIT License.