--- title: Home --- # **πŸ¦β€πŸ”₯ 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]]