π¦βπ₯ 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
- π 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.
π» 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.
- 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.
π¨ 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 API β’ Frontend Web App |
Ali Taherzadeh π GitHub | Backend API β’ Frontend Web App |
Amin Ghoorchian π GitHub | Backend 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