How phantri1912/donation works
This is an ASP.NET Core charity-fundraising application. A visitor browses eligible projects, views details, and starts a donation; the payment controller creates and confirms PayPal orders while recording payment state. Registered users can manage projects, give feedback, use accounts and wallets, and communicate through chat. Admins manage projects and organizations and view statistics. The graph reflects sampled controller/service calls and the documented app setup; several listed controllers and services were not sampled, so their internal wiring is left out.
Main entry points: GrabTuThienContext.cs Application database · ProjectController.cs Project browsing · Program.cs ASP.NET app host · PaymentController.cs Payments and deposits
Components 23
Fundraising
- Project browsing
Areas/Project/Controllers/ProjectController.cs - Payments and deposits
Areas/User/Controllers/PaymentController.cs - Donation history
Services/DonateHistoryBLL.cs - Project services
Services/ProjectBLL.cs
Accounts and chat
- User accounts
Areas/User/Controllers/AccountController.cs - Chat history API
Controllers/ChatController.cs
Administration
- Project administration
Areas/Admin/Controllers/ProjectController.cs - Project list builder
Services/BuildProjectBLL.cs - Organization administration
Areas/Admin/Controllers/OrgController.cs - Organization list builder
Services/BuildOrganizationBLL.cs - Admin statistics
Areas/Admin/Controllers/StatisticController.cs - Organization services
Services/OrganizationBLL.cs
Application services
- WebSocket middleware
Services/WebSockets/WebSocketMiddleware.cs - Socket connection manager
Services/WebSockets/WebSocketConnectionManager.cs - Project expiry worker
Services/ProjectExpiryService.cs - Application database
Data/GrabTuThienContext.cs - Donation and project records
Data/Models/Project.cs - ASP.NET app host
Program.cs
Other components
- Visitor
- Registered user
- Administrator
- PayPal
- Email delivery
Connections 25
- Visitor → Project browsing: browses projects
- Registered user → Project browsing: manages and comments
- Project browsing → Project services: checks projects
- Project browsing → Application database: queries and saves
- Registered user → Payments and deposits: starts payment
- Payments and deposits → Application database: reads and records orders
- Payments and deposits → PayPal: creates and captures orders
- Administrator → Project administration: manages projects
- Project administration → Project list builder: builds project lists
- Project administration → Project services: manages projects
- Administrator → Organization administration: manages organizations
- Organization administration → Organization list builder: builds organization lists
- Organization administration → Organization services: manages organizations
- Administrator → Admin statistics: views statistics
- Registered user → User accounts: registers and signs in
- User accounts → Application database: reads and saves accounts
- User accounts → Email delivery: sends verification email
- Registered user → Chat history API: requests chat history
- Chat history API → Application database: reads conversations and messages
- ASP.NET app host → WebSocket middleware: registers middleware
- ASP.NET app host → Socket connection manager: registers manager
- ASP.NET app host → Project expiry worker: starts worker
- Project expiry worker → Application database: marks expired projects
- Donation history → Application database: accesses donation data
- Application database → Donation and project records: stores