Files
2025-07-18 15:28:00 +03:30

8.1 KiB
Raw Permalink Blame History

🐦‍🔥 Order of the Phoenix — Website Development

📌 About the Project

This repository contains documents, resources, and projects created during the first phase of the Order of the Phoenix initiative — a self-organized learning movement started by a group of computer science students.

What began as an effort to escape a passive academic environment evolved into a collaborative learning experiment — building a solid foundation in modern web development and culminating in the development of a Transportation Management System inspired by platforms like Booking.com and Alibaba.ir.

The goal wasnt just to learn a technology; it was to foster self-driven learning, teamwork, and real-world problem-solving.

📚 Introductory Sessions

The first part of the program focused on equipping everyone with fundamental web development and solid software architecture principles.

Session Notes
00 Session00 Notes
01 Session01 Notes
02 Session02 Notes
03 Session03 Notes
04 Session04 Notes
05 Session05 Notes
06 Session06 Notes
07 Session07 Notes

🗺️ Roadmap of What We Learned

  1. 🌐 Web Fundamentals — HTTP, REST, and the client-server model
  2. 🧩 MVC (Model-View-Controller) — basics of application structuring
  3. ⚙️ Web API Development — designing and consuming APIs
  4. 🚀 ASP.NET Core Basics — setting up and building modern backends
  5. 🛠️ Dependency Injection (DI)
    • Why DI is crucial for maintainability & testability
    • Understanding ASP.NET Core service lifetimes (Transient, Scoped, Singleton)
  6. 🏗️ Design Patterns
    • Repository Pattern for data abstraction
    • Unit of Work for transaction management
    • Factory & Builder for complex object creation
  7. 🏛️ Clean Architecture Fundamentals
    • Separating Domain, Application, and Infrastructure layers
    • Designing business rules independent of frameworks

These sessions ensured that all participants, regardless of prior experience, could contribute to a real-world, well-architected project.

💻 Project-Based Sessions

Once the fundamentals were solid, we moved to building a real project.

Session Notes
00 Session00 Architecture
01 Session01 Additional Info
Session01 Backend
02 Session02 Additional Info
Session02 Backend
03 Session03 Additional Info
Session03 Backend
04 Session04 Additional Info
Session04 Backend
05 Session05 Additional Info
Session05 Backend
Session05 Frontend
06 Session06 Additional Info
Session06 Frontend
07 Session07 Additional Info
Session07 Backend
Session07 Frontend
08 Session08 Backend
Session08 Frontend
09 Session09 Additional Info
Session09 Backend
Session09 Frontend
10 Docker Overview

📝 Planning Phase

  • Selected the project collaboratively (Transportation Management System)
  • Designed a detailed ERD (Entity Relationship Diagram), identifying entities, aggregates, and relationships
  • Wrote full documentation — requirements, use cases, and architecture diagrams

🔨 Implementation Phase

Each member implemented their own version of the project, following Clean Architecture guidelines while experimenting with different approaches.

🔗 Backend — Transportation Management API

A Clean Architecture-based backend designed to be modular, testable, and scalable.

Key Highlights:

  • Domain Layer 🏛️
    • Defined entities
    • Applied domain rules to ensure data consistency
  • Application Layer ⚙️
    • Contained service classes (e.g., TicketOrderService, AccountService) that orchestrated business logic.
    • Services handled validation, entity manipulation, and coordination between repositories.
    • Mapped DTOs to entities for input/output separation.
  • Infrastructure Layer 🗄️
    • Implemented Repository & Unit of Work patterns using Entity Framework Core.
    • Database interactions abstracted behind interfaces.
  • Presentation Layer 🌐
    • ASP.NET Core RESTful Web API

Why Clean Architecture?

  • Clear dependency direction (outer layers depend only on inner ones).
  • Easier testing (business logic independent of frameworks).
  • High maintainability and scalability.

🎨 Frontend — Transportation Management Web App

A modern, component-driven frontend built with React + TypeScript, designed with a focus on clarity, modularity, and maintainability.

  • State Management 🧩
    • Managed predictably using Zustand, organized into well-defined slices for clear separation of concerns.
    • Promotes ease of composition and scalability as the app grows.
  • API Communication 🔗
    • All HTTP requests routed through a centralized Axios instance.
    • Handles global error interception, authentication headers, and response transformations consistently.
  • UI Components 🎨
    • Built with TailwindCSS using a modular, reusable component approach.
    • Encourages visual consistency and speeds up UI development.
  • Routing & Navigation 🗺️
    • React Router DOM for nested and dynamic routing.
    • Clear and scalable navigation flow for multi-step processes (e.g., ticket reservation).
  • Data Flow 🔄
    • Strict unidirectional data flow, making interactions between components, state, and services predictable and easy to debug.
  • User Experience
    • A simple but modern UI optimized for clarity and responsiveness, simulating real-world use cases with a clean architecture mindset.

👥 Projects by Members

Member Projects
Mehrdad Shirvani 🐙 GitHub Backend APIFrontend Web App
Ali Taherzadeh 🐙 GitHub Backend APIFrontend Web App
Amin Ghoorchian 🐙 GitHub Backend APIFrontend Web App

🙏 Acknowledgements

A heartfelt thanks to:

  • All members who dedicated their time and energy, despite busy schedules
  • The core team who stayed committed through challenges
  • Everyone who believed in creating a culture of self-driven, high-quality software development

🚀 Aspirations for the Project

This is just the beginning. Our future goals:

  • Publishing all documents and ERDs publicly for others to learn from
  • Growing this into a community-driven tradition of collaboration and solving real problems

"🔥 May this small spark inspire greater movements."