# **π¦βπ₯ 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**.
| 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](https://github.com/MehrdadShirvani)** | [Backend API](https://github.com/MehrdadShirvani/AlibabaClone-Backend) β’ [Frontend Web App](https://github.com/mehrdadShirvani/AlibabaClone-Frontend) |
| **Ali Taherzadeh [π GitHub](https://github.com/AliThz)** | [Backend API](https://github.com/alithz/AlibabaClone-Backend) β’ [Frontend Web App](https://github.com/alithz/AlibabaClone-Frontend) |
| **Amin Ghoorchian [π GitHub](https://github.com/AminGh05)** | [Backend API](https://github.com/AminGh05/Alibaba-Clone-Backend) β’ [Frontend Web App](https://github.com/AminGh05/Alibaba-Clone-Frontend) |
## **π 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]]