Code Monkey home page Code Monkey logo

challenge-facevault's Introduction

Facevault

Web system for managing people and their facial biometrics.

This project is a technical challenge that involves developing a web system for user registration, updating, and viewing, including their facial biometrics (face photo). The main focus areas are creating a relational database, an API, and a frontend.

Facevault screenshot

Features

Key Features

  • User Registration: Allow users to register with their name, CPF, and facial biometrics (face photo).
  • List Screen: Create a screen to list users with anonymized CPFs, with filtering options for original CPFs and names.
  • Detail View: Develop a detailed view screen displaying anonymized CPFs, names, and user photos.
  • Edit User Details: Allow users to edit their information, including name and photo.
  • Delete User: Provide functionality to delete person data securely.
  • CPF Masking and Hashing: Anonymize and secure CPF data through masking and hashing techniques.

General Features

  • Error Handling: Implement robust error handling mechanisms to handle exceptions and edge cases.
  • Loading Handling: Provide feedback and loading indicators to improve user experience during data operations.
  • Form and DTO Validation: Validate user input and data transfer objects (DTOs) to ensure data integrity and consistency.
  • Data Persistence: Ensure that user registration is only completed when all data is correctly saved in the database.

Installing

Check out Installation Guide.

Contributing

Check out Contributing Guide.

Possible Improvements

  • Development
    • Logging
    • API versioning
    • Git flow
    • Model Mapper for DTO-entity conversion
    • Database Migrations
    • Automated Testing
    • Better Bad request error responses
    • Frontend linting (Eslint)
  • Documentation
    • API Documentation
  • Security
    • Authentication
    • Better CPF validation
  • UX & Performance
    • Caching and loading experience
    • Dynamic icon loading
    • Accessibility
    • Pagination on backend
    • Image saving
    • Batch delete by selection
    • Dynamic param in breadcrumbs

Tech Stack

Backend

  • Java 21
  • PostgreSQL 16.3
  • Gradle
  • Git
  • Spring Boot
    • Spring Web: Facilitates the construction of RESTful applications using the Spring MVC framework.
    • Spring Data JPA: Simplifies the development of Spring-based applications requiring data source access. Built on the Java Persistence API (JPA), it offers a convenient way to handle data in relational databases.
    • Spring Initializr: Tool for quickly generating Spring Boot projects with required dependencies.

Dev Tools:

  • Lombok: An annotation processor operating at compile time, Lombok reduces a lot of boilerplate code such as getters, setters, and toString().
  • Flyway Migration: A database migration tool that simplifies versioning and management of changes to your database schema.

Frontend

  • Angular 17
  • Ant Design (NgZorro): component library
  • ng-signal-forms: library for developing forms using signals

Dev Tools:

  • Angular CLI
  • Node.js

challenge-facevault's People

Contributors

luisfuturist avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.