πŸ¦β€πŸ”₯ 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 wasn’t 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.

πŸ—ΊοΈ 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.

πŸ“ 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

MemberProjects
Mehrdad Shirvani πŸ™ GitHubBackend API β€’ Frontend Web App
Ali Taherzadeh πŸ™ GitHubBackend API β€’ Frontend Web App
Amin Ghoorchian πŸ™ GitHubBackend API β€’ Frontend 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.”

Graph View Index (auto-links)

Session00 Architecture
Session01 Additional Info
Session01 Backend
Session02 Additional Info
Session02 Backend
Session03 Additional Info
Session03 Backend
Session04 Additional Info
Session04 Backend
Session05 Additional Info
Session05 Backend
Session05 Frontend
Session06 Additional Info
Session06 Frontend
Session07 Additional Info
Session07 Backend
Session07 Frontend
Session08 Backend
Session08 Frontend
Session09 Additional Info
Session09 Backend
Session09 Frontend
Docker – Overview
Session00 Notes
Session01 Notes
Session02 Notes
Session03 Notes
Session04 Notes
Session05 Notes
Session06 Notes
Session07 Notes