DEV Community

Cover image for MindCare: A Real-World Angular + Spring Boot Project You Can Actually Run and Explore
Mohamed El Laithy
Mohamed El Laithy

Posted on

MindCare: A Real-World Angular + Spring Boot Project You Can Actually Run and Explore

If you're learning Angular, Spring Boot, or full-stack development, you've probably faced this problem:

You can find hundreds of tutorials, but finding a complete, realistic application that you can actually run, explore, modify, and learn from is much harder.

That's one of the reasons I built MindCare.

It's not meant to be another simple CRUD demo.

It's a complete clinic and medical-center management platform that you can clone, run locally, explore, break, modify, and use as a practical learning reference.

What is MindCare?

MindCare is a full-stack clinic management platform covering different parts of a real medical center.

🏥 Patient Portal

Patients can:

  • Browse available doctors
  • Book appointments
  • Select appointments based on doctor shifts
  • Avoid conflicting bookings

The goal here wasn't just to create an Appointment entity and a CRUD screen.

The application actually needs to deal with scheduling rules and prevent conflicting appointments.

👩‍⚕️ Reception

The reception module includes:

  • Live queue management
  • Patient check-in
  • WhatsApp check-in notifications
  • Emergency queue prioritization

This introduces real-world problems around queues, priorities, state changes, and user interactions.

🩺 Doctor Dashboard

Doctors can work with:

  • Electronic Medical Records
  • Patient history
  • E-prescriptions
  • Medical information
  • PDF exports
  • QR codes

Instead of having isolated demo screens, the different parts of the application are connected.

💊 Pharmacy & Laboratory

The platform also includes:

  • Medicine stock management
  • Low-stock alerts
  • Lab result tracking

These modules introduce another set of practical requirements such as inventory updates and tracking information across different workflows.

💵 Billing

The billing module supports:

  • Automated invoices
  • Multiple payment methods
  • Billing records

Again, the goal is to model something closer to a real application rather than stopping at basic CRUD operations.

🛠️ Administration

The admin panel provides:

  • CRUD operations
  • Dynamic data management
  • No hardcoded application data
  • Changes reflected across the platform

This makes the application much more useful as a learning project because you can actually change the data and observe how those changes affect other parts of the system.


The Interesting Part: Two Different Modes

One of the things I wanted to experiment with was:

Can the same Angular application work with a backend AND without a backend?

The answer is yes.

MindCare supports two modes.

1. Zero-Backend Mode

The frontend can run independently using:

  • Angular 21
  • IndexedDB
  • Client-side application logic

This is useful if you simply want to clone the project and start exploring the frontend without setting up a complete backend and database environment.

2. Full-Stack Mode

The same frontend can communicate with a real backend built with:

  • Spring Boot 3
  • Spring Security
  • JWT authentication
  • PostgreSQL
  • Flyway

The application uses a runtime configuration flag to determine which mode it should use.

So you don't need to rebuild the frontend just to switch between the two modes.


Technology Stack

Frontend

  • Angular 21
  • Signals
  • Standalone Components
  • TypeScript
  • IndexedDB
  • RTL/LTR support

Backend

  • Spring Boot 3
  • Java
  • Spring Security
  • JWT
  • REST APIs

Database

  • PostgreSQL
  • Flyway

Infrastructure

  • Docker

The application also supports both English and Arabic, including dynamic RTL/LTR switching.


Why I Built It This Way

There are already countless tutorials showing how to create:

User
   ↓
CRUD
   ↓
Database
Enter fullscreen mode Exit fullscreen mode

That's useful when you're starting.

But at some point, you need to see how different concepts come together inside an actual application.

For example:

How does authentication connect to authorization?

How do different frontend modules communicate with a backend?

How do you handle scheduling conflicts?

How do you manage application state?

How do you structure a large Angular application?

How does the frontend work when there is no backend?

How do you switch between local persistence and API-based persistence?

How do different business modules interact?

These questions are much easier to understand when you can run the application and inspect the implementation yourself.


Learn by Building, Not Just Watching

This is especially useful if you're a beginner or you're transitioning from tutorials to real-world development.

Instead of spending hours searching for:

"Angular + Spring Boot real project"

you can start with an application that's already working.

Clone it.

Run it.

Read the code.

Change something.

Break something.

Fix it.

Add a feature.

Try a different implementation.

That's how you start moving from:

"I understand the tutorial."

to:

"I can actually build something."


Try It Yourself

🔗 Live Demo:

https://lnkd.in/eyTE3GSW

💻 Source Code:

https://lnkd.in/eTKNbHJt

If you find the project useful, consider giving the GitHub repository a ⭐.

It helps me know that these practical projects are actually useful to developers who are learning.


What's Next?

MindCare is just the beginning.

I'm planning to make this a weekly project series.

Every week, I'll build and share a new practical project using different:

  • Technologies
  • Frameworks
  • Design patterns
  • Architectures
  • Databases
  • AI tools
  • Engineering approaches

The goal isn't to create another collection of tutorials.

The goal is to create a growing collection of real projects that developers can actually explore and learn from.

Real projects.

Real code.

Real problems.

If you're learning software development, follow along and let's learn by building. 🚀


Final Thought

You don't always need another 3-hour tutorial.

Sometimes you just need a project that works.

Something you can open, run, explore, and ask:

"Why was it built this way?"

That's the kind of learning experience I want to create with this series.

Top comments (0)