MyRoma
In June 2020, with the help of a friend, I began developing MyRoma, a mobile app that serves as a complete guide to Rome. The client wanted an app that was easy to use, rich in content, and available on both iOS and Android. Over three months, we developed and delivered this project, learning a lot.
Project overview
MyRoma was designed to help users explore Rome with ease. The app includes audio guides, images, and detailed descriptions of the city’s attractions. The key requirements were:
- Cross-platform availability: The app had to work on both iOS and Android.
- Multi-language support: It needed to be accessible in several languages.
- Offline functionality: Users should be able to download and use the content without an internet connection.
- Admin panel: For managing content and user data.
Application and website
The mobile application needed to be cross-platform, so we decided to use Flutter. For the website, since the backend was built with Django, we chose to use Django templates. The website was designed to be a landing page for the app, providing information about the app’s features and how to download it.
The main features of the app include:
- Audio guides: audio tracks that can be downloaded and listened to offline.
- Offline: tours can be saved for offline use.
- Multi-language support: the app is available in many languages
Backend
The backend was built with Django, with a PostgreSQL database. We used Django Rest Framework to create APIs for the mobile app.
Admin panel
The cliented wanted a custom admin panel to manage the app’s content and user data. We built this using React. This was my first professional project using React, and I learned a lot about the framework.
Hooks were just introduced the year before, and I learned a lot about them while working on this project. I also learned about state management with Redux, which was a great experience.
Challenges
The biggest challenge for us was the multi-language support. I never had to deal with multi-language databases before, and this was a new experience for me.
We had to create a system that could handle multiple languages for each piece of content, and it was a lot of work.
Conclusion
MyRoma was a great project to work on. I learned a lot about cross-platform development, Django, and React.
We started the project in June 2020 and delivered it in September.