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.
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]] |
- 🌐 Web Fundamentals — HTTP, REST, and the client-server model
- 🧩 MVC (Model-View-Controller) — basics of application structuring
- ⚙️ Web API Development — designing and consuming APIs
- 🚀 ASP.NET Core Basics — setting up and building modern backends
- 🛠️ Dependency Injection (DI) —
- Why DI is crucial for maintainability & testability
- Understanding ASP.NET Core service lifetimes (Transient, Scoped, Singleton)
- 🏗️ Design Patterns —
- Repository Pattern for data abstraction
- Unit of Work for transaction management
- Factory & Builder for complex object creation
- 🏛️ 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.
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]] |
- ✅ 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
Each member implemented their own version of the project, following Clean Architecture guidelines while experimenting with different approaches.
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.
- Contained service classes (e.g.,
- 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.
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.
| Member | Projects |
|---|---|
| Mehrdad Shirvani 🐙 GitHub | Backend API • Frontend Web App |
| Ali Taherzadeh 🐙 GitHub | Backend API • Frontend Web App |
| Amin Ghoorchian 🐙 GitHub | Backend API • Frontend Web App |
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
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."