Building an Open Source Photo Sharing Web App in Rails.
PART 1 : The Planning and initial scaffold.
Problem Statement:
During the recent #FriendlyRb and #RailsWorld2023 conferences, attendees enthusiastically captured numerous photos, which they shared using various platforms such as Google, WhatsApp, and Flickr. However, the dispersal of photos across different platforms led to challenges in managing and accessing the collective event memories. Many individuals who attended multiple consecutive conferences found themselves overwhelmed by the increasing volume of photos, leading to difficulties in efficient organisation and retrieval of these valuable memories.
Those who utilised Flickr for photo sharing encountered limitations, as they received prompts to upgrade to the pro version due to the extensive number of photos uploaded. Recognising this issue, as an attendee of both conferences, I am seeking to develop an open-source photo-sharing web application tailored specifically for the Ruby and Rails community, built with Rails. This project aims to provide a unified platform for community members to seamlessly share, organise, and access event photos from various conferences, meet-ups, and gatherings related to the Ruby and Rails ecosystem.
The Proposed Solution
Facilitate streamlined photo sharing and ensure easy access to event memories, fostering a collaborative and connected community experience. As the initiator of this project, my objective is to create an intuitive and user-friendly web application that enables efficient photo sharing and management, with the aim of simplifying the process of reliving and preserving the vibrant moments shared within the Ruby and Rails community. Through active engagement and collaboration within the community, I hope that this project will evolve and thrive with continuous input, feedback, and support from fellow enthusiasts and contributors.
User Stories
Regular User:
- View uploaded event photos
- Like and comment on photos
- Search for events or meet-ups
- Bookmark favourite photos
- Share photos on social media
Registered User:
- All features of a regular user
- Upload photos of events, meet-ups, and conferences
- Create event pages
- Receive notifications about upcoming events
- Edit or delete their own photos and event pages
Event Organiser: * Future Feature*
- All features of a regular user and registered user
- Create and manage event pages
- Upload photos related to events
- Moderate comments and content related to their events
- Feature selected event photos on the main page
Administrator: * Future Feature*
- Manage user accounts and permissions
- Moderate all content uploaded by users
- Monitor and address user reports and issues
- Customise the platform's settings and features
- Analyse user engagement and behavior for improvements
Minimum Viable Product
The plan is to build this in iterations, starting with an MVP and the features will be:
1. User Authentication: Allow users to sign up, log in, and log out.
2. Photo Upload: Enable users to upload photos with appropriate metadata.
3. Photo Display: Display photos uploaded by users on the platform.
4. User Profile: Allow users to have their profiles with basic information and a list of their uploaded photos.
5. Commenting: Enable users to comment on photos.
6. Basic Search: Implement a basic search functionality to find photos based on their titles or tags.