An Android app that enables users to apply different hair colours and hair styles to their pictures. Such operations are handled in the backend by various CV Python libraries, such as HairTransfer and faceswap.
Building upon the previously built database, API and Admin Portal of our project, this repository will contain the previous three components plus the documentation, design (mockups, wireframes, etc.) and implementation required for the Style Me App.
If you just want to play around with the app, you may simply install the latest Android apk
available here.
NOTE: The
apk
built for release connects to our backend hosted on an EC2 instance, which may not be running. Contact the developers if you wish to test the app.
This project consists of two main components and a few subcomponents:
-
Backend
- Users API (ASP.NET Core)
- Pictures API (FastAPI)
- Database (MariaDB)
- Adminer
-
Frontend
- StyleMe app (Flutter)
- Admin Portal (PHP, currently outdated)
We are using Docker for convenience, both in development and production. We recommend using a Unix-based OS for development, although Windows also works fine.
The docker-compose.yml
file builds images required for development, with the following services:
- db: The main database of this project
- adminer: A PHP-powered database management portal that connects to db
- prometheus: A monitoring system to profile the Pictures API that continuously outputs metrics
- grafana: A dashboard / data visualisation tool that connects to prometheus
- users_api: An ASP.NET Core API that mainly deals with user accounts, authentication, authorisation and exposes CRUD actions for various categories related to the features seen in the app, such as face shapes, hair styles and hair colours.
To start all of those services and leave them running in the background, move to the Backend directory and run:
docker-compose up -d
You should now build the Pictures API as instructed here. It requires Python >= 3.8.5 and Anaconda.