Skip to content

lucascompython/PDSDI-TP

Repository files navigation

Clothe Match

This is a platform where users upload their clothes and the system suggests outfits based on the user's preferences.
We provide a web interface and native mobile and desktops apps.


Features

  • Multiplatform: Web, Android, iOS, Windows, Linux, and macOS.
  • Fast: The API is built with Rust and the frontend with Astro/Svelte.
  • Secure: Passwords are hashed with Argon2.

Requirements

You will need the following items installed run this project:

  • Docker (optional, to run the application in containers)
  • Git
  • Postman (optional, to conduct API tests)
  • Python - to run the build system and the machine learning model
  • Rust - to build the backend
  • bun - Fast JS runtime/bundler
  • PostgreSQL - Database
  • uv - Modern Python package manager
  • cargo-watch- Reload backend dev server on changes
  • upx - Compress the app binary
  • tauri-cli- Build the multiplatform native app

How to Run

Clone the Repository

git clone https://github.com/lucascompython/PDSDI-TP
cd PDSDI-TP

Run the Application with Docker

# Run production mode
docker compose up

# Run development mode
docker compose -f docker-compose-dev.yml up

Run the Application without Docker

./make.py --help

Test the API Routes

The API can be tested using tools like Postman. All routes and request details are documented in the API.md file. Additionally, you can import the Postman collection file included in the repository to facilitate testing.


Docker Image

The API Docker image is available at: Docker Hub:

docker pull l33tlsl/clothe_match_backend

Project Structure

  • API.md: Detailed documentation of the API routes.
  • docker-compose.yml / docker-compose-dev.yml: Configuration to run the application in Docker containers.
  • Resources/: Additional resources for the project:
    • Reports
    • Presentations
    • Postman Collection
    • Test Data
    • Database Model
    • Mockups
  • app/: Source code of the application.
  • frontend/: Source code of the frontend.
  • backend/: Source code of the backend.
  • model/: Source code of the machine learning model.
  • cbf/: Source code of the CBF (Custom Binary Format) algorithm.
  • make.py: Main script of the custom build system for the project.

Related Repositories

In the development of this project, we conducted some studies and experiments that resulted in other repositories and open source contributions:

  • argon2-bench-rust - Study on the performance of different password hashing algorithms in Rust.
  • parking_lot_vs_std - Study on the performance of different synchronization primitives in Rust.
  • argon2-kdf - Fastest Argon2 implementation in Rust, that we contributed to.

License

This project is under the GNU General Public License v3.0. See the LICENSE file for more details.


Academic Information

  • Curricular Units: Serviços Distribuídos, Projeto de Sistemas de Informação
  • Professor: Wenderson Wanzeller, Estrela Cruz
  • Authors: Lucas de Linhares; Guilherme Sousa
  • Ano Letivo: 2024/2025
  • University: Instituto Politécnico de Viana do Castelo

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors