Personal project — Vue.js 3 & FastAPI

Reading Platform
Personal Library

Full stack personal library management app — reading progress tracking, notes, statistics and recommendation engine. A project born from a real need, designed to master Vue.js 3 and FastAPI in a complete application context.

Reading Platform — Library

My Reading
Read48
Reading3
To read21
AuthJWT
Sci-fi
History
Tech
FastAPI async Python API
Vue 3 Composition API
JWT secure auth
OpenAPI auto documentation

Features

A complete reading experience

Library Module

Full book CRUD with statuses (to read / reading / read), personal notes and collection management.

Stats Dashboard

Books per month, favourite genres, estimated reading time — visualize your reading habits.

Recommendation Engine

Suggestion engine based on enjoyed genres and authors, enriched by reading history.

JWT Auth

Secure authentication with access token and refresh token, session management via Pinia.

Approach

A real need, a real project

Reading Platform was born from a personal need: tracking my reading, discovering patterns in my habits and getting personalized recommendations. The opportunity to build a complete application with an async Python backend and a modern Vue.js frontend.

Vue.js 3FastAPIPostgreSQLJWTTypeScriptPinia

Build

From data model to dashboard

Modeling

Definition of entities (books, authors, genres, collections) and PostgreSQL schema with N-N relations.

Backend

Async FastAPI, JWT authentication, library, stats and recommendation modules.

Frontend

Vue.js 3 interface with Composition API, Pinia, multi-criteria filters and dashboards.

Quality

Automatic OpenAPI documentation, strict TypeScript typing and continuous refactoring.

Tech stack

Technologies used

Vue.js 3Composition APITypeScriptPiniaPython 3.11FastAPISQLAlchemyPostgreSQLJWTOpenAPI

Interested?

Modern full stack,
Vue.js 3 & Python

Reading Platform demonstrates my ability to design and build a complete application from data modeling to user interface, with a modern async Python API.

Contact me