Photograph Sharing Platform
In this project, I worked with two of my best hard-working friends. This project is part of the course "Software Architecture", where we had the choice to build a mobile application or a website, my friends and I decided to apply
our idea in a mobile app, we used mainly JavaScript programming language for front-end and back-end development and used Firebase for the database part.
The idea is to create a photograph-sharing platform that allows users to
share their photos to the app's feed or with other members in an anonymous way on the platform. Likes & Dislikes work as ratings for a post and these can only be seen by the ones who share.
Ratings will be good for an artist or photographer for analyzing people's preferences to art. Users are allowed to share videos as well but with limited time as well as can attach music to the post to express more artistic style. User’s
posts will remain permanently. This platform will work also in a matching logic similar to Tinder. Users will be able to rate other users’ posts, and the posts with the highest ratings will be shown more frequently in the trend. The group
will use React native as a frond-end and a back-end, and Firebase for the database. The Firebase database will store various data such as accounts, pictures, likes, dislikes, comments, matches.
For the architectural representation part, we created several diagrams such as "Model - View - Controller (MVC) Architecture" for the software architecture diagram which contained the client tier, application tier, and data tier.
Other diagrams also are use case diagram, sequence diagram, activity diagram, and class diagram. Moreover, we decided the constraints for the project in terms of schedule, cost, technology, policy, and software architecture. For the functional
requirements, we assigned several things that the application should be able to accomplish. Similarly, for the non-functional requirements, we had some safety requirements, security requirements, and software quality requirements. Finally,
we created a risk tree and risk table to explain the type of risks the users or the developers could face.