Full-stack academic project · 2024–2025

Cont-Air-Near.

A cargo shipping and port-operations management system connecting a React interface, FastAPI REST API and relational data model in one role-aware application.

My role
Programmer & project lead
Team
4 developers
Contribution
80 commits*
Status
Completed
Cont-Air-Near product management interface with search, sorting, pagination and cargo product cards
The Products interface combines searchable data, sorting, pagination and role-aware actions.

Overview

One system for connected shipping operations

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

From authentication to integration

The academic report and Git history show contributions across backend, frontend, security, data modelling and team delivery.

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.

02

Authorization & administration

Introduced GUEST, CLIENT, EMPLOYEE and ADMIN roles; protected backend endpoints, frontend routes and actions; restricted client order access; and built administrative client management.

03

Full-stack feature work

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

Leadership & integration

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

Full feature overview

The application models a small cargo marketplace and its connected port operations.

  • 01CRUD workflows for ships, ports, products, clients, orders and operations
  • 02Relationships between cargo, vessels, ports, clients and order records
  • 03Search, filtering, sorting, pagination and grid/list interfaces
  • 04Shopping-cart and checkout workflows
  • 05Product and ship image upload and replacement
  • 06Role-aware navigation, protected routes and client-specific data
  • 07Default demo data and interactive Swagger API documentation
  • 08Responsive Bootstrap-based React interfaces

Technical architecture

Three layers, one permission model

JWT travels from the React client through the API, where role checks protect operations before SQLAlchemy accesses SQLite.

01

React UI

Routes, forms, role context, navigation and shared Axios API service.

02

FastAPI

REST routes, Pydantic validation, JWT verification and authorization utilities.

03

SQLAlchemy

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

Technical decisions and team responsibility

  1. 01Designing authentication as an end-to-end flow rather than an isolated backend feature
  2. 02Applying authorization consistently across API endpoints, routes and visible interface actions
  3. 03Modelling connected business entities with SQLAlchemy and relational databases
  4. 04Integrating independently developed modules without losing a coherent user experience
  5. 05Balancing delivery, code review, debugging and team coordination as project lead
  6. 06Recognising production gaps in secrets, default credentials, tests and deployment hardening

Team context

Built collaboratively

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 workflow

Project status

Completed demonstration project

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.

API resources

Ships, ports, products, operations, orders, order products, clients, cart and checkout—documented through FastAPI Swagger UI.

Security note

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

Authentication, CRUD and team integration in one repository.

Open GitHub