How tuanduy35399/mydognet works
MyDogNet is a web portfolio with public profile and post browsing, plus an authenticated admin area for account and post management. Visitors browse paginated/searchable posts or open a detail page; admins sign in, then manage posts and accounts. Post content can include images uploaded to Cloudinary before submission, as documented in the README. The excerpts show the post API’s database operations and the account repository’s JWT flow; some frontend and upload wiring is represented only by the tree or README, so uncertain links are omitted or marked dashed.
Main entry points: App.jsx Page routing · api.js API client · SignIn.jsx Admin sign-in · ApplicationDbContext.cs Application database
Components 21
Public portfolio
- Page routing
front-end/src/App.jsx - Portfolio pages
front-end/page/Home/Home.jsx - Post browsing
front-end/components/ListPost/ListPost.jsx - Post detail
front-end/page/PostDetail/PostDetail.jsx - Profile context
front-end/context/UserContext.jsx
Admin experience
- Admin routes
front-end/page/Admin/main/Admin.jsx - Admin sign-in
front-end/page/Admin/SignIn.jsx - Post management
front-end/page/Admin/manage/Post/PostManager.jsx - Post authoring
front-end/page/Admin/manage/Post/CreatePost.jsx - Account management
front-end/page/Admin/manage/Account/AccountManager.jsx - API client
front-end/api.js
Backend API
- Account API
BackEnd/Controllers/AccountController.cs - Post API
BackEnd/Controllers/PostController.cs - Profile API
BackEnd/Controllers/AboutMeController.cs - Image upload API
BackEnd/Controllers/UploadController.cs - Account repository
BackEnd/Repositories/AccountRepository.cs
Persistence and media
- Application database
BackEnd/Data/ApplicationDbContext.cs - Cloudinary media
- Cloudinary service
BackEnd/Services/CloudinaryService.cs
Other components
- Visitor
- Administrator
Connections 27
- Visitor → Page routing: opens pages
front-end/src/App.jsx - Administrator → Page routing: opens admin
front-end/src/App.jsx - Page routing → Portfolio pages: routes to
front-end/src/App.jsx - Page routing → Post detail: routes to
front-end/src/App.jsx - Page routing → Admin routes: protects route
front-end/src/App.jsx - Page routing → Admin sign-in: routes to
front-end/src/App.jsx - Page routing → Post management: routes to
front-end/src/App.jsx - Page routing → Post authoring: routes to
front-end/src/App.jsx - Page routing → Account management: routes to
front-end/src/App.jsx - Portfolio pages → Post browsing: renders
front-end/page/Home/Home.jsx - Post browsing → API client: requests posts
front-end/components/ListPost/ListPost.jsx - Post detail → API client: requests detail
front-end/page/PostDetail/PostDetail.jsx - Profile context → Profile API: fetches profile
front-end/context/UserContext.jsx - Profile API → Application database: reads profile
BackEnd/Controllers/AboutMeController.cs - Administrator → Admin sign-in: signs in
- Admin sign-in → API client: submits credentials
front-end/page/Admin/SignIn.jsx - Post management → API client: fetches and deletes
front-end/page/Admin/manage/Post/PostManager.jsx - Post authoring → API client: submits post
README.md - Account management → API client: manages accounts
front-end/page/Admin/manage/Account/AccountManager.jsx - API client → Post API: HTTP requests
- API client → Account API: HTTP requests
- API client → Image upload API: uploads images
README.md - Account API → Account repository: delegates account work
BackEnd/Controllers/AccountController.cs - Account repository → Application database: reads and writes accounts
BackEnd/Repositories/AccountRepository.cs - Post API → Application database: reads and writes posts
BackEnd/Controllers/PostController.cs - Image upload API → Cloudinary service: delegates upload
BackEnd/Controllers/UploadController.cs - Cloudinary service → Cloudinary media: stores images
BackEnd/Services/CloudinaryService.cs