Radin Safari — Backend Development

Backend Engineering, Custom API Development, Database Design, and Security Implementation
Categories: Backend Development / REST API Development / Database Design / Authentication & Security
Project Overview
Radin Safari is a web platform designed to showcase video portfolios, deliver educational courses, publish professional articles, and manage digital content. The goal was to build a dedicated, scalable backend infrastructure that supports content management, user administration, educational resources, and video portfolios through a unified system.
My role in this project focused on backend development, including designing the database structure, implementing the core server-side functionality, and developing the APIs required by the website.
Live Website: radinsafari.ir
Project Challenges
Building a content-driven platform with multiple interconnected modules required a structured architecture capable of managing data relationships, access control, and media uploads efficiently.
The main technical challenges included:
-
Relational Data Management: Designing relationships between courses, chapters, episodes, articles, clients, and video portfolios.
-
User Authentication and Authorization: Implementing secure authentication and role-based access control.
-
Large File Uploads: Supporting video and image uploads while managing memory consumption and validating uploaded files.
-
Dynamic Content Management: Providing APIs to manage homepage sections without requiring direct changes to the frontend code.
-
Maintainability and Reliability: Managing database schema changes and validating API behavior through automated testing.
Implemented Solutions
1. RESTful API Development
Using FastAPI, I developed APIs for managing users, educational courses, blog posts, team members, clients, video portfolios, and dynamic homepage content.
I also implemented an aggregated homepage endpoint that combines the data required by the frontend into a single response, reducing the number of requests needed to retrieve homepage content.
2. Database Design and Management
The database was designed using PostgreSQL and SQLAlchemy 2, with structured relationships between the project's core entities.
Alembic was used to manage database schema changes through version-controlled migrations, making the database easier to maintain and evolve.
3. Authentication and Access Control
I implemented JWT-based authentication, password hashing, user management, and role-based access control to support different levels of access across the platform.
4. Content and Learning Management
The backend includes APIs for managing blog posts, categories, tags, courses, chapters, and educational episodes. Additional modules support team management, client information, and video portfolio entries.
5. Secure Media Uploads
I developed a media upload system with streaming-based file processing to reduce memory usage when handling large files.
File signature validation and safe path handling were also implemented to help prevent invalid uploads and path traversal vulnerabilities.
6. Automated Testing and Quality Assurance
I developed an automated test suite consisting of 102 tests using Pytest and HTTPX to validate API behavior and help identify potential issues. Database changes were managed through Alembic migrations.
Technologies and Tools
-
Python & FastAPI: Backend logic and RESTful API development
-
PostgreSQL: Relational database management
-
SQLAlchemy 2: Object-relational mapping and data modeling
-
Alembic: Database schema migrations
-
Pydantic v2: Data validation and serialization
-
JWT & Bcrypt: Authentication and password hashing
-
Pytest & HTTPX: Automated API testing
-
Git & GitHub: Version control and source code management
Project Outcome
The backend provides the core infrastructure for user management, educational content, blogging, video portfolios, and media uploads through dedicated APIs.
This modular architecture establishes a foundation for frontend integration and future feature development while keeping the platform's core functionality organized and maintainable.
My Role: Backend Developer — Database Design, API Development, Authentication, Secure File Uploads, and Automated Testing.
Live Website: https://radinsafari.ir/