Team Leader: Md. Mahafujur Rahaman Masud
The primary goal of this project is to create a comprehensive and user-friendly online platform that promotes blood donation accessibility and encourages active participation. This project will help to save lives by connecting blood donors with recipients. This project will also help to create awareness about blood donation and its importance.The platform aims to bridge the gap between blood donors and those in need by leveraging technology to streamline the donation process, provide valuable information, and foster a sense of community engagement.
- Donation
- User-Donate Blood
- User request for blood
- User accept her blood request
- User can see their donation history with status (Pending, Approved, Rejected).
- Can see history of blood request.
- Admin Can View, Update, Delete Donor.
- Admin Can View Donation Request made by donor and can approve or reject that request based on disease of donor.
- Event
- Users can view our event
- Users can see the details page
- Admin can view, create, edit, delete
-
Blog
- Users can view our blog
- Users can see the details page
- User can comment on individual Blog
- Admin can view, create, edit, delete
-
Notification
- If the user sends a request for blood, the blood owner gets a notification
- If the Blood Owner accepts a blood request, the request user gets a notification
- Live Chat (socket.io) => Video List
- Users can live chat with the admin in real time
- Admin can show all chat messages, and also chat with the user
- Contact (Node Mailer)
- Users can contact the admin. Admin can Show contact list on the dashboard also mail sent on admin mail by Node mailer
-
Open
- Registration
- Login
- All Donors
- Blood group-wise Donors list
-
User
- Profile
- total donation
- last donation
- total received
- Update Profile
- Request for blood from the user
- Individual Donor details or contact info
- Cancel request
- Accept request
- Profile
- Landing page
- All Donors page
- Blood group wise Donors page
- Donors details page
- About us
- Real-Time Event Promotion
- Blog Page
- Contact US
- Promotion of a Lifelong Commitment to Donation
- Donation Center Locations
- Notification
- Message
- Chat-AI-(Optional-if we get time)
- Registration
- Login
- Profile / Dashboard
- Update Profile
- Change password
- Donors route
- /donors (get) ⇒ get all donors with pagination and filtering
- /donors/:group (get) ⇒ get all group-wise donors with pagination and filtering
- /donors/:userId (get) ⇒ get donor info {protected}
- /donors/request (patch) ⇒ request for blood
- /donors/cancel-request (patch) ⇒ cancel request by donor
- /donors/accept (patch) ⇒ accept request from donor
- Notification
- /notification/:id (GET)
- /notification/:id (PATCH)
- /notification/:id (DELETE) => Only Admin
- Blog
- /blog (GET) => Get all Blog
- /blog/:id (GET) => get single blog
- /blog/:id (PATCH) => Update Single Blog
- /blog/:id (DELETE) => Delete Single Blog
- Messaging
- CRUD Operations
- Banner
- /banner (GET) => Get all Banner
- /banner/:id (DELETE) => Delete Single Banner
- Auth route
- /auth/signup (post)
- /auth/login (post)
- /auth/refresh-token(post)
- /auth/change-password (patch) {protected}
- /auth/profile (get) ⇒ (for getting own profile information) {protected}
- /auth/profile (patch) ⇒ (for updating own profile) {protected}
- Banner
- /banners(GET) => Get all Banner
- /banner/:id (PATCH) => update Banner
- /banner/:id (DELETE) => Delete Banner
- TypeScript
- NodeJs | ExpressJs
- MongoDB | Mongoose
- Zod
- Jsonwebtoken
- Bcrypt
- Cors
- Cookie-parser
- Dotenv
- HTTP-status
- Ts-node-dev
- ESLint
- Prettier
- Lint-staged
- Husky
- TypeScript
- NextJs
- Redux | Redux Toolkit
- Axios
- React Hook Form । Hook Form Resolvers
- Yup
- Ant Design
- Tailwind
- Jwt-decode
- ESLint