fotostor. was conceived as an idea for artists to use a social media platform to help spread the reach of their work, and to help monetise their work at the same time. Users can register on the platform and receive suggested posts through an algorithm that determines what's popular at the moment. Users can follow other users and get suggested posts based on posts they like on their feed, as well as enable the ability to sell clothing, prints, and licensing rights of their work to other users on the platform. Users can also purchase other artist's works, modify their profile picture and biography.
On the e-commerce side of the functionality, users can set their address to purchase clothing, licenses, and prints of the work they wish to purchase and place it in a shopping basket. Once the order has been processed through Stripe, the user receives an email with a receipt of what they've ordered, and if they've purchased a license, a link to the work in question.
- A short video (03:15) created for the Project Showcase before the end of the academic year. Demonstrates functionality.
- A long video (53:27) created as part of the final Project Upload. Goes into depth about the functionality, deployment pipelines, the stack, trials and tribulations during development and lessons learned.
- Blazor WebAssembly - The web framework used
- ASP.NET 5 Core Web Api - REST API
- IdentityServer4 - Authorisation framework to secure API
- Selenium IDE - Integrated web testing
- Azure Pipelines - Cloud hosted CI/CD pipeline defined by YAML
- xUnit - Unit testing framework for ASP.NET Core
- GenFu & Moq - Libraries to generate realistic testing data used in conjunction with xUnit
- Stripe.NET - Official .NET Stripe library, used for transactions
- ImageSharp - Image processing library
- SendGrid - Email library to send proof of transaction
- Google Cloud Storage API for .NET - For uploading of images to a cloud-hosted bucket
- Project Research Document - Prepared before a line of code was written. Details similar applications, stack and development risks.
- Use Cases and Logical Architecture - Details user use cases for the functionality of the project, and a graph of the logical architecture of the project.
- Security & Scalability Testing of API Analysis - OWASP Zap and k6 scalability testing reports are included within the repo.
I'd like to acknowledge and thank the following: Gary Clynch for being my project supervisor and giving me necessary feedback during development. My parents for putting up with me during the long hours. Jarid, Kay, João & Kama for providing sample artwork to help demonstrate the project.