About the project
In 2019, I developed a single-page application (SPA) called "Tabarro3.ma," a platform aimed at connecting blood donors with individuals in need across Morocco. The platform features a user-friendly interface where donors can register by providing their name, phone number, city, and blood type. People searching for donors can filter by blood type and city to quickly find a match. The project’s goal was to simplify and improve the blood donation process, making it easier for those in need to locate suitable donors.
This project was one of the first web apps I work on. Which I learned a lot by creating it. Not only the dev aspect, but I designed the app from scratch, from idea, visual identity, logo, UI/UX, dev, maintenance and even social media management.
Goal
The goal of this project was benevolent; we aimed to use our knowledge to provide a solution that would positively impact society and help the community. The project was designed to be easy to use and to spread widely, maximizing its impact.
Data
This project dealt with highly sensitive information (personal and medical data). To ensure data security, we encrypted it using the AES algorithm and only decrypted it on demand when needed. For search functionality, we used hashed values since the filter system relied on selecting pre-existing items. The filter data was hashed and compared in database queries, returning the correct rows without the need for decryption during the search. Data was only decrypted after it was fetched and ready for viewing.
Authentication
For this project, we conducted market research and discovered that most of our target audience did not use email. This posed a challenge, and we opted to use phone numbers for authentication. Due to limited financial resources at the start, we did not integrate an SMS provider for OTP (One-Time Password) verification. Users created accounts, and if they had an email, we validated it. Otherwise, we manually handled user registration. For the password reset process, users submitted a request, which we managed through the admin panel to reset the password. The generated password was linked to a reference value from a field they provided (like ID number) and another field provided on request, and this value was encrypted. We did not have the ability to the passwords, as the reference value was encrypted, and only the users knew it.
Lifespan
The project lasted for 3 years, during which it reached 500 active users across various cities in Morocco, covering diverse blood types. However, we decided to discontinue it for internal reasons, with plans to re-launch a better version in the future.