Our team consisted of two members:
- Anozie Innocent Onyekachi: Focused on backend development, API creation, and integration.
- Loay Al-Said: Handled, Application server, frontend development, user interface design, and image handling integration.
The Story Behind RemindMe
Project Accomplishments
RemindMe was built with a strong focus on providing a seamless user experience. We achieved several milestones:
- User Authentication: Implemented secure user registration and login using Flask-Login and Flask-JWT. This ensures that user data is protected and only accessible by authorized users.
- Reminder Management: Developed a dynamic interface for creating, updating, and deleting reminders. Users can add descriptions, set visibility (public or private), and even attach images to their reminders.
- Image Handling: Integrated ImageKit.io for image uploads, allowing users to enhance their reminders with visual content. This feature is particularly useful for users who rely on visual cues.
Technologies Used
- Backend: Flask, Flask-Login, Flask-JWT, SQLAlchemy
- Frontend: HTML5, CSS3, JavaScript
- Database: SQL/MySQL
- Image Handling: ImageKit.io
We chose these technologies to ensure a smooth learning curve since we have been working with them in foundations phase of our curriculum. Flask provided a flexible framework for API and Application server development, while SQLAlchemy facilitated efficient data management. For the frontend, we opted for JQuery, HTML and CSS to deepen our understanding of the languages and their capabilities.
Key Features
- Secure Authentication: Users can register and log in securely, with their sessions managed effectively.
- Reminder Management: Users can create, update, and delete reminders with ease, adding detailed descriptions and setting reminders as public or private.
- Image Attachments: Users can upload images to their reminders, enhancing the context and visual appeal of their tasks.
The Most Difficult Technical Challenge
One of the most challenging aspects of this project was integrating the image upload functionality. Initially, we faced numerous issues with handling file uploads securely and efficiently. The situation required us to find a reliable solution for storing and retrieving images without compromising user data.
Situation: We needed to implement a feature allowing users to upload images to their reminders, but our initial attempts were filled with security and performance issues.
Task: Our task was to integrate a third-party service, ImageKit.io, to handle image uploads and ensure that the images were securely stored and easily retrievable by our users.
Action: We researched various image handling services and chose ImageKit.io for its robust features and ease of integration. I implemented the backend functionality to handle image uploads, including creating temporary files, uploading them to ImageKit.io, and handling the response to store the image URL in our database. This required thorough testing and debugging to ensure the process was secure and efficient.
Lessons Learned
This project was a significant learning experience, both technically and personally:
- Technical Skills: Deepened my understanding of Flask, SQLAlchemy, and JavaScript. Learned how to integrate third-party services like ImageKit.io effectively.
- Problem-Solving: Gained valuable experience in troubleshooting and debugging complex issues, particularly in handling file uploads and securing user data.
- Team Collaboration: Improved my ability to work collaboratively with a team, coordinating tasks, and integrating our work seamlessly.
Conclusion
About Me
I am Anozie Innocent Onyekachi, a passionate Software Engineer with a keen interest in creating solutions that make everyday tasks easier. You can find more about RemindMe and my other projects on my GitHub. Feel free to connect with me on LinkedIn.
- GitHub Link for the Project: RemindMe GitHub
- Deployed Project Page: RemindMe Web App
- Project’s Landing Page: RemindMe App