01
Authentication & security
Built registration and login across FastAPI and React, implemented JWT access tokens and bcrypt password hashing, added validation, session-expiry logout and disposable-email-domain blocking.
Full-stack academic project · 2024–2025
A cargo shipping and port-operations management system connecting a React interface, FastAPI REST API and relational data model in one role-aware application.

Overview
The project was built from scratch rather than configured from an existing CMS. That made the work more demanding, but gave the team control over the data model, permissions and workflows needed for ships, ports, products, clients and orders.
The result is a full-stack application with a React client, REST API, account system and relational persistence. It demonstrates how interface behavior, domain relationships and security rules must work together—not as separate coursework exercises, but as one usable product.
My work
The academic report and Git history show contributions across backend, frontend, security, data modelling and team delivery.
01
Built registration and login across FastAPI and React, implemented JWT access tokens and bcrypt password hashing, added validation, session-expiry logout and disposable-email-domain blocking.
02
Introduced GUEST, CLIENT, EMPLOYEE and ADMIN roles; protected backend endpoints, frontend routes and actions; restricted client order access; and built administrative client management.
03
Created foundational Operation, Port and User functionality, developed CRUD workflows and relationships, built early React interfaces and connected them through a shared Axios API service.
04
Led a four-person project, coordinated delivery, integrated feature branches, resolved conflicts, reviewed merges, repaired CI and handled cross-module bug fixing before final delivery.
*The repository attributes 80 commits to my x0-lf and s19568 identities. Merged feature branches can duplicate commit history, so capabilities—not raw volume—are the main evidence presented here.
Application scope
The application models a small cargo marketplace and its connected port operations.
Technical architecture
JWT travels from the React client through the API, where role checks protect operations before SQLAlchemy accesses SQLite.
Routes, forms, role context, navigation and shared Axios API service.
REST routes, Pydantic validation, JWT verification and authorization utilities.
Domain models and relationships persisted in a seeded SQLite database.
Frontend
React 18, React Router, Axios, React Bootstrap, React Hook Form
Backend
Python, FastAPI, Pydantic, Uvicorn
Persistence
SQLAlchemy, SQLite
Security
JWT, bcrypt, role-based authorization
Delivery
Git, GitHub Actions, npm, pip
What I learned
Team context
Cont-Air-Near was a four-person academic project. I served as project lead and full-stack programmer. Fabian Zbrański worked on core setup, ships, orders, related records, filtering and cart integration; Maciej Chojecki worked on products, images, pagination, styling and the user panel; Michał Joński-Jastrzębowski worked on clients, cart, order history, QA and relationship fixes.
Shared ownership is part of the project’s value: the challenge was not only writing features, but coordinating independent work into a coherent application.
Repository structure
backend/
models/ Domain models
routes/ REST endpoints
utils/ Authorization and email tools
main.py FastAPI application
frontend/src/
components/ Domain and shared UI
contexts/ Role context
pages/ Routed pages
services/ Axios API client
.github/ CI workflowProject status
Delivered in January 2025 and cleaned up for portfolio use. The repository includes corrected Python 3.13 setup instructions and seeded local demo accounts for ADMIN, CLIENT and EMPLOYEE roles.
Ships, ports, products, operations, orders, order products, clients, cart and checkout—documented through FastAPI Swagger UI.
Demo credentials are for local use only. Production deployment would require new secrets, removed defaults, updated dependencies, broader automated tests and hardened deployment configuration.
Explore the code