- Introduction
- Features
- Technologies Used
- Getting Started
- Usage
- API Documentation
- Project Structure
- Contributing
- License
- Contact
Eterna Care Medical Institute is a Blood Bank web application designed to manage blood inventory with integration of a schedule appointment system for blood donors . This application helps ease the struggle in proper inventory management.
- User authentication and authorization
- Schedule appointments with laboratories
- View and manage appointments
- View and manage Blood-bank Inventory
- Responsive UI for a seamless user experience
- Frontend: React, Next.js, Tailwind CSS, Shadcn UI
- Backend: Node.js, Next.js Server Action
- Database: Prisma ORM with MongoDB
- State Management: React Query (TanStack Query)
- Validation: Zod, React Hook Form
Ensure you have the following installed on your local development machine:
- Node.js (>= 14.x)
- pnpm or yarn
-
Clone the repository:
git clone https://github.com/ciobiano/Eterna-care.git cd Eterna-care
-
Install the dependencies:
pnpm install # or yarn install
-
Start the development server:
pnpm run dev # or yarn dev
-
Open your browser and navigate to http://localhost:3000.
Once the application is running, you can:
- Sign up and log in as a user
- Browse and select laboratories
- Schedule and manage appointments
The application uses server actions to handle data fetching and mutations. Here are some key endpoints:
- GET /actions/getLaboratories: Fetch a list of laboratories
- POST /actions/getAppointments: Create a new appointment
For detailed API documentation, refer to the code in the /actions
directory.
The project is organized as follows:
Eterna-care/
├── actions/ # Next.js 14 server actions
├── app/ # Next.js app directory
├── components/ # Reusable React components
├── hooks/ # Custom React hooks
├── lib/ # Utility functions and libraries
├── prisma/ # Prisma schema and migrations
├── public/ # Public assets
├── styles/ # Global styles and Tailwind CSS config
├── .env # Environment variables
├── next.config.js # Next.js configuration
├── package.json # Project dependencies and scripts
└── README.md # Project documentation
Contributions are welcome! Please follow these steps to contribute:
- Fork the repository
- Create a new branch (
git checkout -b feature/your-feature-name
) - Make your changes
- Commit your changes (
git commit -m 'Add new feature'
) - Push to the branch (
git push origin feature/your-feature-name
) - Open a pull request
This project is licensed under the MIT License. See the LICENSE file for more details.
For any questions or inquiries, please contact:
- Email: (mailto:[email protected])
- GitHub: ciobiano