Website Structureand Specifications 1
Website Structureand Specifications 1
https://photohawk.com/es/find-your-photos
https://www.lumepic.com/events
AWS Services
1. Amazon S3
○ Purpose: Storage for photos and static content (e.g., high-resolution images with
watermarks).
○ Features:
■ Secure access with signed URLs.
■ Scalable and cost-effective storage.
2. Amazon Rekognition
○ Purpose: Photo analysis for facial and text (bib number) recognition.
○ Features:
■ Automatic tagging of photos by face and race number.
■ Optimized to avoid reprocessing analyzed photos.
3. Amazon Cognito
○ Purpose: Authentication and user management for customers, photographers, and
admins.
○ Features:
■ Multi-Factor Authentication (MFA).
■ Social logins (optional).
■ Role-Based Access Control (RBAC).
4. AWS Lambda
○ Purpose: Serverless functions for tasks like generating watermarked previews or
processing uploaded images.
○ Features:
■ On-demand processing.
■ Automatically scales with traffic.
5. Amazon CloudFront
○ Purpose: Deliver images and static content quickly through a Content Delivery Network
(CDN).
○ Features:
■ Reduces load times globally.
6. Amazon SES (Simple Email Service)
○ Purpose: Automated email delivery for:
■ Purchase confirmations.
■ Download links with expiration details.
■ Notifications for event updates.
○ Features:
■ Supports bulk email campaigns.
■ Configurable templates for branded emails.
7. Amazon DynamoDB (or RDS)
○ Purpose: Database for event, photographer, customer, and photo metadata.
○ Features:
■ DynamoDB: NoSQL, ideal for fast searches.
■ RDS: SQL, suitable for complex relational queries.
8. AWS WAF (Web Application Firewall)
○ Purpose: Protect against malicious attacks like SQL injection or XSS.
○ Features:
■ Configurable to block suspicious traffic.
9. AWS CloudWatch
○ Purpose: Monitor application logs and system performance.
○ Features:
■ Real-time alerts for errors and issues.
Frontend Technologies
1. React.js
○ Purpose: Build an interactive and responsive frontend for customers, photographers,
and admins.
○ Features:
■ Component-based architecture for reusable code.
■ Efficient state management using Redux or Context API.
2. Tailwind CSS or Material-UI
○ Purpose: Styling for the website's design.
○ Features:
■ Highly customizable and responsive styles.
■ Integrates well with React.
Backend Technologies
1. Node.js with Express.js
○ Purpose: Develop the server-side logic and API.
○ Features:
■ Handles multiple requests efficiently.
■ Integrates seamlessly with AWS SDK for S3, Rekognition, and SES.
2. Python (Optional)
○ Purpose: For specialized tasks like AWS Rekognition integration or advanced image
processing.
○ Key Libraries: boto3 for AWS SDK.
Payment Processing
1. Stripe
○ Purpose: Secure and automated payment processing.
○ Features:
■ Revenue splitting between photographers and the platform.
■ Multiple payment methods (credit cards, Apple Pay, Google Pay).
Development Tools
1. GitHub or GitLab
○ Purpose: Version control and collaboration among developers.
○ Features:
■ Private repositories for secure code storage.
■ Continuous Integration/Continuous Deployment (CI/CD).
2. Postman
○ Purpose: Test and debug API endpoints.
Security Features
1. SSL/TLS with AWS Certificate Manager
○ Purpose: Secure communication between users and the platform.
2. Data Encryption
○ Encrypt sensitive data at rest (e.g., passwords, Stripe keys) using AES-256.
3. GDPR/CCPA Compliance
○ Purpose: Ensure privacy policies are clear and compliant with data regulations.
Scalability Tools
1. Auto-Scaling and Load Balancing
○ Use AWS Elastic Load Balancing and Auto Scaling for handling traffic spikes.
2. Image Optimization
○ Compress images during upload without quality loss for faster load times.
Project Deliverables
Here is the updated list of deliverables, including system requirements, documentation, and post-launch
support:
1. Fully Functional System
● Operational Platform:
○ A fully functional platform hosted on AWS, accessible via the specified domain.
○ All pages, features (search, payments, downloads), and user roles (customers,
photographers, admins) must be implemented and tested.
● Correct Integrations:
○ Stripe: Secure payments and automatic revenue splitting.
○ AWS Rekognition: Facial and text (bib number) recognition functioning seamlessly.
○ AWS SES: Automated emails configured for confirmations and updates.
○ AWS S3: Secure storage for photos with signed URL access.
2. Source Code
● Repository in GitHub or GitLab:
○ Full source code with proper version control.
○ Deployment instructions for setting up the platform from scratch.
● Code Organization:
○ Clear comments and a structured codebase to facilitate future modifications.
● Dependency Documentation:
○ A complete list of all dependencies and libraries used (e.g., package.json for Node.js,
requirements.txt for Python).
3. Documentation
● Admin Manual:
○ A detailed document explaining:
■ How to create and manage events.
■ Modifying pages and menus through the admin panel.
■ Managing photographer commissions and viewing reports.
■ Resolving common issues (e.g., re-sending download links, handling photo
upload errors).
● Technical Guide for Developers:
○ AWS Configuration:
■ Details for S3, Lambda, DynamoDB, Rekognition, and SES.
■ Security policies and permissions.
○ Steps for deploying updates on the platform (CI/CD procedures).
○ Local setup instructions for testing or further development.
● User Guide:
○ Simple manuals for customers and photographers:
■ Customers: How to search and purchase photos.
■ Photographers: How to upload and manage events and photos.
4. Training
● Training Session:
○ A virtual (recorded) session explaining:
■ How the system works.
■ How to use the admin panel.
■ Procedures for resolving common problems.
● Post-Delivery Support:
○ A 3-month support period for addressing additional questions or concerns, particularly
during the onboarding of photographers.
5. Warranty
● Warranty Period:
○ 3 months after delivery to address:
■ Any bugs or errors identified.
■ Ensuring all defined functionalities work as expected.
● Warranty Conditions:
○ Does not cover issues caused by external modifications not performed by the freelancer.
Header
The header will remain visible on all pages for easy navigation and include the following elements:
2. Photo Galleries
3. Instructions
4. About Us
6. Join as a Photographer
7. FAQ / Help
1. Column 1: Legal
○ Terms and Conditions.
○ Warranty Policy.
○ Privacy Policy.
2. Column 2: Contact
○ Email address.
○ WhatsApp (direct link).
○ Links to social media (Facebook, Instagram, etc.).
○ Newsletter Signup
3. Column 3: Payment Options
○ Stripe, PayPal, and major credit cards.
○ Recognizable payment logos/icons.
Homepage
Description:
The homepage serves as the primary entry point, showcasing all available photo galleries. Recent
events are displayed at the top, followed by a section for upcoming events. A search bar allows users
to quickly find galleries. The slogan "Economic Justice" is prominently displayed above the galleries.
The top menu provides easy access to "My Account," the cart, and a language switcher.
Functionalities:
1. Dynamic Galleries:
○ Automatically updates to display the most recent galleries first. Divided for country
○ Includes a dedicated section for upcoming events with basic details (e.g., event name,
date).
2. Smart Search Bar:
○ Allows users to search galleries by:
■ Event name.
■ Date.
■ Location.
○ Real-time autocomplete suggestions.
3. Editable Slogan:
○ Option to update the slogan text ("Economic Justice") via the admin panel.
4. Dynamic Menu:
○ Easily add, edit, or remove menu items from the admin panel.
5. Quick Access Links:
○ Visible buttons in the top-right corner for:
■ Login / My Account.
■ Cart.
■ Language switcher (e.g., English/Spanish).
6. SEO Optimization:
○ Automatically generates SEO-friendly titles and meta descriptions for the homepage.
Photo Galleries Page
Description:
This page allows users to browse photos by event. Each event includes an event image at the top,
followed by an intelligent search option where users can find their photos using their number or a selfie.
Below the search options, the gallery displays all event photos in low resolution with watermarks,
enabling manual browsing.
Functionalities:
This page displays all photos matching the user's search criteria. Users can click on individual images
to view them in larger detail. The enlarged view includes the photo's price, the photographer's name,
and the option to add the photo to the cart. Discounts are applied automatically based on the quantity of
photos in the cart, regardless of the photographer or search session. The cart persists even if users
perform a new search.
Functionalities:
Similar Example:
The Payments page is where customers finalize their purchases through Stripe. Payments are split
among vendors based on their sales, applying a dynamic commission system (e.g., Elite vs. General
sellers). After payment, customers receive a download link for their photos, which is also sent via email.
The link expires after one week, and the page includes a notice explaining this to the customer.
Functionalities:
Example Workflow:
1. Customer View:
○ Customer reviews their cart and proceeds to payment.
○ Enters payment details using Stripe.
○ Sees a confirmation screen post-payment with the download link.
2. Vendor Revenue Splitting:
○ During checkout, the system calculates payouts per vendor based on their classification
(Elite/General).
○ Revenue is split and logged for reporting.
3. Post-Payment Actions:
○ Customer receives an email with the download link and expiration details.
○ The admin panel logs the transaction, showing the split between vendors and platform
revenue.
Admin Configurations:
3. Instructions Page
Description:
Provides clear, step-by-step guidance to help users navigate the platform and complete their purchase
process.
1. Editable Steps:
○ Search Photos:
Instructions for searching by:
■ Bib number or race number.
■ Uploading or taking a selfie.
○ Add to Cart:
Guidance on selecting photos and adding them to the cart.
○ Complete Purchase:
Steps to review the cart, proceed with payment, and download purchased photos.
2. Visual Support:
○ Include images, GIFs, or short videos to demonstrate each step, youtube videos
(modifiable via admin).
3. Contact Section:
○ “Still need help?”
Provides a link to the FAQ/Help page and Contact Us page.
4. Admin Panel Features:
○ Modify step descriptions.
○ Upload or replace visual aids.
○ Reorder steps as needed.
4. About Us Page
Description:
Showcases the platform’s mission, values, and team, helping to build trust and transparency.
1. Photographers:
○ Highlight the photographers involved, with:
■ Name.
■ Short bio.
■ Social Networks links (facebook and instagram)
■ Link to their work or portfolios (optional).
○ Editable via admin.
2. Cooperative:
○ Explain how the cooperative supports photographers, including:
■ Revenue sharing.
■ Opportunities for growth.
■ Community impact.
○ Admin can update text and images.
3. Our Values:
○ Core principles: transparency, fairness, and community.
○ Bullet points with editable descriptions.
4. Contact Us:
○ Contact form:
■ Fields: Name, Email, Message.
■ Auto-reply confirming receipt (integrated with AWS SES).
○ Editable contact details:
■ Email, WhatsApp, and social media links.
Breakdown of how customer payments are distributed, reinforcing the platform’s mission of economic
justice.
1. Revenue Distribution:
○ Editable percentages for:
■ Photographers’ share (80%-85%, by default).
■ Operational costs (~10%).
■ Platform revenue (3%-5%).
○ Include a pie chart or bar graph (modifiable via admin) to visually represent the
breakdown.
2. Mission Statement:
○ “Every purchase directly supports photographers and helps us maintain fair operations."
Editable via admin.
3. Call-to-Action:
○ “By choosing us, you support fairness and transparency.”
Encourages photographers to join the cooperative, outlining the benefits and onboarding process.
Answers common user questions and provides troubleshooting tips for a smooth experience.
1. Categories:
○ How to find photos:
Detailed steps for searching.
○ Payment methods:
Explanation of available options (Stripe, PayPal, etc.).
○ Download link expiration:
Information on the 7-day validity of download links.
2. Expandable Sections:
○ Each question expands to reveal the answer.
○ Admin can add, edit, or reorder FAQs.
3. Search Functionality:
○ A search bar at the top to quickly find relevant FAQs.
4. Contact Us Link:
○ Prominently placed for additional help.
The Customer Account Page allows customers to access and manage their personal information,
view purchase history, and handle their downloads. This page provides a simple, user-friendly interface
to enhance the customer experience.
Functionalities:
1. Personal Information
● Profile Details:
○ Display the following:
■ Full name.
■ Email address.
○ Edit Profile:
■ Allow customers to update:
■ Name.
■ Email address.
■ Password.
2. Purchase History
● Order Overview:
○ List all purchases made by the customer, including:
■ Order ID.
■ Event name.
■ Date of purchase.
■ Total cost.
○ View Order Details:
■ Clicking on an order displays:
■ Photos purchased (thumbnails).
■ Photographer details.
■ Amount paid.
3. Photo Downloads
4. Notifications
● System Notifications:
○ Display updates or alerts, such as:
■ Expiring download links.
■ Promotions or discounts.
5. Logout
Functionalities:
1. View Sales by Event
● Dashboard Overview:
○ Display sales for each event:
■ Total photos sold.
■ Total earnings (separated into the photographer's share and platform
commission).
■ Event date and location.
○ Filters:
■ Filter by event name, date range, or performance (e.g., top-selling events).
● Export Sales Reports:
○ Download detailed sales reports in PDF or Excel format.
5. Photo Management
6. Training Resources
● Performance Analytics:
○ Visualize which events perform best:
■ Total sales.
■ Average sales per photo.
■ Conversion rate (photos sold vs. photos uploaded).
○ Recommendations:
■ Suggestions for improvement based on historical performance.
● Admin Dashboard:
○ Admins can:
■ Approve or reject event creation requests.
■ Approve or deny access to existing albums.
■ View all pending events and album requests in one place.
○ Notification System:
■ Automatically notifies photographers about approval/rejection.
9. Stripe Integration
● Earnings Dashboard:
○ Stripe handles all revenue splits automatically:
■ Elite Photographers: Default 85% earnings.
■ General Photographers: Default 80% earnings.
○ Admins can adjust these percentages for each photographer.
Updated Upcoming Events Page
Description:
The Upcoming Events Page showcases future events where photos will be available. Customers can
directly subscribe by entering their name and email without additional steps, ensuring a quick and
seamless process.
Functionalities:
1. Event List Display
● Event Information:
○ Each event includes:
■ Event Name.
■ Date and Location.
■ Brief Description.
■ Placeholder image or event banner.
● Dynamic Sorting:
○ Events are displayed in chronological order, with the soonest events listed first.
● Search and Filters:
○ Search bar to find specific events by name or location.
○ Filters to refine results:
■ By date.
■ By category (e.g., marathon, triathlon, cycling).
Confirmation Message:
Backend Integration:
● Store the customer’s name, email, and the associated event ID in the database for future use.
2. Sales Analytics
● By Event:
○ Total revenue generated.
○ Number of photos sold.
○ Photographer contributions per event.
● By Photographer:
○ Sales breakdown by photographer.
○ Event performance comparison.
○ Average revenue per photo for each photographer.
● Custom Reports:
○ Ability to generate reports by date range, event, or photographer.
● Traffic Dashboard:
Integrate real-time graphs to display:
○ Active users.
○ Number of searches per minute.
○ Event traffic spikes.
3. Event Management
● Event Creation and Approval Workflow:
○ Approve or reject events created by photographers.
○ Create events directly, including:
■ Uploading event details.
■ Uploading promotional images (homepage banner and gallery thumbnail).
■ Setting categories (e.g., marathon, triathlon).
● Assign Photographers to Events:
○ Approve photographer requests to join existing events.
○ Manage the list of photographers assigned to each event.
6. Photographer Management
● Access Photographer Profiles:
○ View and edit details for each photographer, including:
■ Name, email, and contact info.
■ Assigned events.
■ Sales history and performance metrics.
● Support Tools for Photographers:
○ Manually reassign photographers to events.
○ Resolve account-related issues (e.g., password resets, account lockouts).
8. System Settings
● Platform Customization:
○ Update global settings, such as:
■ Platform-wide default commission rates.
■ Default photo expiration period (e.g., 7 days).
○ Manage site-wide branding:
■ Logos, slogans, and footer content.
● Admin User Management:
○ Create and manage multiple admin accounts with different levels of access (e.g., super
admin, event admin).
● Editable Pages:
○ Allow admins to modify the content of all static pages, such as:
■ About Us: Update photographers’ details, cooperative descriptions, values, and
contact info.
■ What You Pay: Change the breakdown percentages or descriptions.
■ Instructions Page: Add or remove steps, update images or videos.
■ FAQ / Help: Add new questions, reorder or update answers.
○ Use a WYSIWYG Editor (What You See Is What You Get):
■ Simplifies the process of updating text, images, and layout without coding.
● Page Preview and Publishing:
○ Preview changes before publishing them live.
○ Save drafts to work on updates incrementally.
Menu Management:
Maintain a record of all actions taken by admins and photographers for accountability and
troubleshooting.
Functionalities:
1. Action Tracking:
○ Log all major actions, such as:
■ Approving or rejecting events.
■ Changing commission percentages.
■ Modifying email templates.
■ Uploading, editing, or deleting photos.
2. Details Captured:
○ Date, time, and user who performed the action.
○ Description of the action (e.g., "Changed commission for Photographer A from 85% to
90%").
○ Event or entity affected (if applicable).
3. Searchable Logs:
○ Filter logs by:
■ Action type (e.g., "Event Approval").
■ User.
■ Date range.
Provide in-depth analytics on event performance, helping admins and photographers understand trends
and optimize their strategies.
Functionalities:
1. Real-Time Metrics:
○ Track total sales, photos sold, and top-performing photographers for each event.
2. Visual Analytics:
○ Graphs showing:
■ Daily sales trends.
■ Revenue by photographer.
■ Customer engagement (e.g., number of searches, photos added to cart).
3. Comparative Analysis:
○ Compare performance across multiple events to identify trends (e.g., "Marathons tend to
sell more photos than triathlons").
Admin tool for creating and managing notifications for both photographers and customers.
Functionalities:
1. Types of Notifications:
○ System-Wide Notifications:
■ Announcements like scheduled maintenance, new features, or platform updates.
○ Photographer-Specific Notifications:
■ Reminders to upload photos, event approvals, or performance updates.
○ Customer Notifications:
■ Alerts about expiring download links or promotions.
2. Notification Delivery:
○ Send notifications via:
■ Email.
■ Dashboard alerts (visible upon login).
3. Scheduling:
○ Set notifications to go live immediately or schedule them for a future date.
Admin feature for creating and sending email campaigns to customers and photographers.
Functionalities:
1. Campaign Creation:
○ Design custom email templates for:
■ Event promotions.
■ Discounts or limited-time offers.
■ Updates for photographers (e.g., "Best Practices for Photo Uploads").
2. Targeted Campaigns:
○ Segment audiences by:
■ Customers who purchased in specific events.
■ Photographers with active or pending events.
■ Inactive users (e.g., not logged in for X days).
3. Performance Metrics:
○ Track open rates, click-through rates, and conversion rates for each campaign.
14. Modify the Main Menu and Footer
Menu Modification:
Footer Customization:
● Editable Sections:
○ Update legal links (Terms & Conditions, Privacy Policy, etc.).
○ Change contact details (email, phone, social media links).
○ Modify payment method icons and branding elements.
1. Security Features
Login and Authentication
Data Protection
1. Encryption:
○ Use HTTPS for all communications to encrypt data in transit (SSL/TLS).
○ Encrypt sensitive data at rest (e.g., passwords, Stripe keys) using AES-256.
2. Access Control to Photos:
○ Use AWS S3 Signed URLs to control access to high-resolution photos.
○ Links expire after 7 days or another configurable duration.
3. Data Backup and Recovery:
○ Automated daily backups for:
■ Customer purchase history.
■ Photographer sales data.
■ Event details and uploaded photos.
○ Backup retention policy (e.g., keep backups for 30-90 days).
4. Firewall Protection:
○ Use AWS WAF (Web Application Firewall) to:
■ Block malicious traffic (e.g., SQL injection, cross-site scripting).
■ Limit requests per IP to prevent DDoS attacks.
2. Additional Functionalities
Platform Scalability
1. Auto-Scaling:
○ Use AWS services like Elastic Load Balancing (ELB) and Auto Scaling to handle spikes
in traffic (e.g., after an event).
2. Image Optimization:
○ Compress images automatically during upload to improve page load times without
sacrificing quality.
3. Content Delivery Network (CDN):
○ Use AWS CloudFront to deliver images quickly to users worldwide.
Customer Experience
1. Download History:
○ Customers can see previously purchased photos and re-download them (within the link
expiration period).
2. Purchase Notifications:
○ Automated email notifications for successful purchases, including:
■ Invoice.
■ Download link.
■ Reminder about expiration.
3. Search Optimization:
○ Enhance search features using tags from AWS Rekognition:
■ Filter by event, bib number, or face recognition.
○ Ensure fast response times for search queries.
4. AWS Rekognition Optimization: Ensure Rekognition processes only new photos to avoid
reprocessing analyzed images.
Photographer Management
Admin Tools
1. Multi-Admin Support:
○ Allow multiple admin accounts with different permissions (e.g., super admin, event
manager).
2. Global Configuration Settings:
○ Admins can update platform-wide settings such as:
■ Default photographer commissions.
■ Photo expiration periods.
■ Site branding elements (e.g., logo, slogans).
1. Error Tracking:
○ Use services like AWS CloudWatch to monitor application errors and performance
issues.
2. Usage Analytics:
○ Track user activity to identify trends (e.g., peak search times, popular events).
3. Real-Time Notifications:
○ Alert admins to critical issues like:
■ Failed photo uploads.
■ Payment processing errors.
1. GDPR/CCPA Compliance:
○ Allow customers to:
■ Delete their accounts.
■ Download their personal data.
○ Provide clear terms and conditions for data usage.
2. Data Access Logs:
○ Track who accessed customer or photographer data to ensure compliance with privacy
policies.