I wont to build a medium to large web application I will use WPA to make it cross platform the problem is I don't Know what's the best Tech Stack.
Project Idea:
I want to develop a medium to large-scale web application, and I plan to leverage Progressive Web App (PWA) technology to ensure cross-platform compatibility. The primary objective of this application is to serve as a vital link between pharmacists and patients. It will empower patients to conveniently discover the nearest pharmacists on a map, assess their availability, and verify the availability of required medications.
Conversely, the application will also facilitate seamless communication between doctors and patients. Patients will be able to locate nearby doctors, refine their search based on the doctors' specializations, and have the option to call for appointment reservations or seek urgent medical advice.
With these revisions, the text highlights the core goals and features of your web application, emphasizing its role in connecting patients with pharmacists and doctors while also incorporating additional functionalities like appointment reservations and urgent medical advice.
Frontend: I plan to use AngularJS for the frontend, as it supports PWA features, ensuring a responsive and cross-platform experience for users.
Backend: I need guidance on selecting the best backend technology stack, I think the hardest thing is the search based on the locations.
Database: I also need advice on choosing an appropriate database solution I want to store all the interactions between the Users.
Please provide recommendations for the backend technology stack and the database solution that would best complement Angular for this web application.
Actually, you do not specifically need a framework choice for implementing PWA. Turning a web app into a PWA so straight-forward and not need a complete framework switch. Here is the list of what ng add @angular/pwa command does with the equivalient action you can do independent from a framework:
- Create a service worker with a default caching configuration. (You can do it with install / fetch events in your sw)
- Create a manifest file, which tells the browser how your app should behave when installed on the user's device. (Just a metadata for you app, the package.json-like file of a PWA) Add a link to the manifest file in index.html. (you can add via link tag) Add the theme-color tag to index.html. (You will be doing it within the manifest file) Create app icons in the src/assets directory. (Then you will point them in your manifest file)
If you wanna have the app on the foundation of responsive expectations, better to rely on media queries in your CSS and use the appropriate stylings of each element for each screen size you wanna support.
So as summary, you can easily start with a single JS, HTML and CSS file and then convert into what you need. If you prefer sth. with full-batteries and lightweight, Vite can be a good start to have a look. Svelte is another choice as it is basically a builder coming with its own easy-to-go syntax and its recent update, runes. These are the first details come into my mind regarding frontend.
Reagrding the business logic of what you would like to choose in the backend to search based on the locations. You do not need anything specific for searching the locations but the only detail to keep as the metadata of the locations are latitude, longitude and the name of the place (city,etc.). Then you can run the queries based on the keyword and return the LAT/LONG values back, if you need a map with the pin. If you specifically need a search index or sth., nowadays you can create indexes based on the most prefereed places in your db and gain some performance benefits.
For the database solution, i think again you can start small with a key-value strategy where you will keep “interaction” as events sent through FE<>BE with the user’s id associated with it. If the needs go beyond what you expext, you can iterarively migrate to a more document-based approach getting updates in batch with each user’s actions.
Hope the notes help for you project and wish you the best luck in your journey.
Any backend can solve your requirements. It is more about where you and your team has expertise. I assume you are familiar with JS, so perhaps something like Strapi would fit. If you are more into Python usually Django is a good choice. If you have some familiarity with AWS you also might just setup an API Gateway and some Lambdas.
Please be aware that dealing with health data might fall under strict regulations. It depends on the country you are providing your service. Make sure you encrypt the data in your DB and that you apply OWASP rules to the design of the services.