A modern full-stack web application for medication management, pharmacy discovery, and personal health tracking, built with clean architecture and real-world scalability in mind.
- 🎨 Smart Theme System
Switch between light/dark modes with auto-save. - 🔍 Search & Filter (In developing...)
Filter medicines by name or category. - 💊 Basic Medicine Cabinet
Simple list to track your medications. - 🔒 Secure Authentication
Safe user login/registration with JWT tokens and password hashing - 🎯 Clean User Interface
Minimalist and easy to navigate. - 💾 Local Data Storage
Your info stays between visits. - 🌐 API Error Handling
User-friendly messages for server / network errors.
- .NET 8 (ASP.NET Core)
- C#
- MySQL
- Entity Framework Core
- JWT Authentication
- React 18
- TypeScript
- Vite
- REST API integration
- Clean Architecture
- RESTful API
- DTO-based validation
- .NET 8 SDK
- Node.js 18+
- MySQL Server
# Clone the repository
git clone https://github.com/Pupler/SmartPharmacy.git
cd SmartPharmacy
# Start MySQL Server
# Linux (systemd)
sudo systemctl start mysqld
sudo systemctl status mysqld
# Login to MySQL
mysql -u root -p
# Create Database
CREATE DATABASE smartpharmacy;
USE smartpharmacy;
# (Optional) Create Dedicated User
CREATE USER 'smartpharmacy_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON smartpharmacy.* TO 'smartpharmacy_user'@'localhost';
FLUSH PRIVILEGES;
# Create Medicines Table
CREATE TABLE Medicines (
Id INT AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(100) NOT NULL,
Price DECIMAL(10,2) NOT NULL,
Stock INT NOT NULL DEFAULT 0,
RequiresPrescription BOOLEAN NOT NULL DEFAULT FALSE,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
# This schema matches the Entity Framework configuration used in the backend.
# Configure Connection String
# Edit Backend/appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=smartpharmacy;User=root;Password=;"
}
}
# ⚠️ Replace username and password with your actual MySQL credentials.
# Run Backend API
cd Backend
dotnet restore
dotnet run
API will start on:
http://localhost:5171
# Install Dependencies
cd frontend
npm install
# Run Frontend
npm run dev
Frontend will be available at:
http://localhost:5173This project is open source and available under the MIT License.