Full-stack development of a database management web application for pharmacists

Project summary

Role: [Intern] Project lead junior
Duration: 6 months
Technologies:

- Python (Flask)
- JavaScript
- HTML
- CSS
- SQLite
- Nginx
- Linux
- Visual Studio Code
- GitHub
- nano

Tasks:

- Requirement analysis
- Specification document writing
- Full-stack development
- Testing and validation
- Deployment

Project context

With more than 16000 employees, a budget of 1.7 billion euros and over 1 million admissions per year, the Lille university hospital is the biggest hospital in the North of France. I did my internship in the pharmacy department (French) which on its own represents 25% of the hospital's budget for merely 300 employees.
Part of the pharmacists' job is to prepare pharmaceutical products with a very strict control process issued by the ANSM (French National Agency for Medicines and Health Products Safety). The 2023 update of the ANSM guidelines (French) raised the computer tracking requirements for the control process of pharmaceutical products. Therefore, I had to implement a solution to help pharmacists comply with these new regulations.

Project details

During this internship, I was in charge of leading the whole project. The needs were not defined at first and my interlocutors did not have technical skills. It was therefore my role to clearly define the needs in a specification document through meetings and ANSM documents.
I had to design a software that would allow them to generate forms, to fill in the forms and to store them in a database from which data could be extracted and printed in the PDF format. The software had to be working both online, to synchronize data between users, and offline in case of network failure. This is why I chose to develop a hybrid web application.
I learned by myself web technologies, like JavaScript programming, HTML and CSS design, as well as general good practices. I tried to be as meticulous as possible in my work, especially regarding security, I led extended tests to ensure the application was robust and reliable. I also made sure that the server-side code was optimized to work on any operating system as I was not sure initially which one would be used.
I was able to implement most of the requested features and always thoroughly tested the edge cases I could think of. At the end of this 6-month internship, I was able to deploy the functional application on a server of which I defined the hardware and software specifications.
From the last update I had, the software was not used by pharmacists, as it requires support from a third-party software editor. However, the pharmacists were actively looking for a way to be able to use it as soon as possible, as they were really satisfied with the end result.