The primary goal of this project was to create more than just a website; it was to build a comprehensive digital solution that enhances the clinic’s professional image, attracts new clients through a high-performance and SEO-friendly interface, and streamlines the entire appointment booking process.
The solution is divided into two main parts: a beautiful, dynamic public-facing website for clients, and a powerful, secure admin panel for the clinic’s staff to manage every aspect of their online presence.
2. Technology Stack: A Modern & Scalable Architecture
We chose a modern, decoupled architecture to ensure security, performance, and future scalability. This means the user-facing website and the admin panel are two separate applications that communicate with a single, robust backend API.
- Public-Facing Website (Client Frontend):
- Next.js (React Framework): Chosen specifically for its powerful Server-Side Rendering (SSR) capabilities, which are crucial for top-tier SEO performance and incredibly fast page load times.
- Tailwind CSS: For creating a beautiful, custom, and fully responsive design.
- Admin Panel (Management Frontend):
- React (with Vite): A separate, highly responsive application built for speed and efficiency in data management.
- TanStack Query (React Query): For intelligent data fetching, caching, and state synchronization with the backend, creating a seamless and fast user experience for the admin.
- React Router: To handle navigation within the different sections of the admin panel.
- Backend (The Core API):
- Node.js & Express.js: A powerful and reliable foundation for building a fast and secure REST API that serves both the public website and the admin panel.
- MongoDB: A flexible NoSQL database that allows us to easily manage and scale the data for blogs, services, bookings, and clients.
- Socket.IO: Integrated for real-time communication, enabling instant notifications in the admin panel the moment a new booking is made.
- Deployment:
- The entire system is deployed on a private VPS (Virtual Private Server) located in Germany for optimal performance for Danish users.
- Nginx acts as a high-performance web server and reverse proxy, directing traffic to the correct application.
- PM2 is used as a process manager to ensure the backend and frontend applications are always running reliably.
3. The Public Website: The Client’s First Impression
The public website is the digital storefront of the clinic. Every part of it is dynamic and can be managed from the admin panel.
- Dynamic Homepage: Features an animated hero section, a showcase of featured services, and the latest blog posts, all pulled directly from the database.
- Services & Before/After Pages: These are not static pages. The list of services and the client transformation gallery are fetched in real-time from the backend, meaning any update in the admin panel is instantly reflected on the site.
- Dynamic Blog: A complete blog with a main page featuring filtering and sorting, and individual article pages with a dynamic sidebar for related posts and categories.
- Intelligent Booking System: This is a key feature. When a client selects a date, the website makes a live API call to the backend to fetch only the time slots that are actually available, preventing any double-bookings and accounting for times blocked off by the admin.
4. The Admin Panel: The Heart of Clinic Management
Accessible via the secure admin.aestetikcopenhagen.dk
subdomain, the admin panel is the command center for the entire platform.
- Secure Authentication: Access is protected by a robust JWT (JSON Web Token) authentication system.
- The Dashboard: This is the first thing an admin sees. It provides an at-a-glance overview of the clinic’s status with:
- Live Stat Cards: Showing real-time data for pending bookings, total blog posts, and available services.
- Interactive Bookings Chart: A beautiful bar chart visualizing booking trends over the last 7 days.
- Comprehensive Booking Management: This is the most powerful feature. It offers two distinct views:
- List View: A detailed table of all bookings with advanced search and filtering by client name, date, and status.
- Calendar View: A visual, full-page calendar where the admin can see the schedule for any given day. More importantly, they can manually block and unblock time slots to account for holidays, private appointments, or walk-in clients, ensuring the online booking system is always perfectly in sync with the clinic’s real-world schedule.
- Full Content Management System (CMS):
- Blog Management: Admins have full CRUD (Create, Read, Update, Delete) control over blog posts via a professional Rich Text Editor (TinyMCE), allowing them to write and format articles with images, headings, and lists, just like in WordPress.
- Services Management: Full CRUD control over the services offered by the clinic.
- “Before & After” Management: A dedicated section to upload and manage the client transformation gallery.
- Real-Time Notifications: Thanks to Socket.IO, the moment a client submits a booking request on the main website, a live notification instantly appears in the admin panel header, ensuring the staff is always immediately aware of new activity.
5. Conclusion
This platform is a complete, secure, and highly scalable solution that empowers Æstetisk Copenhagen to take full control of its digital presence. From attracting new clients with a fast, modern website to efficiently managing every aspect of their business through a custom-built, intelligent admin panel, this project provides all the tools necessary for success and future growth.