Image

Avante Cosmetic Appointments & Website

Freelance

Avante Cosmetic Website & Appointments Application

Avante Cosmetic is a beauty business in Denver, Colorado.

The website built with Next.js and React. It features an online appointment system where Clients can submit appointments via the website. Features include user authentication, a sophisticated notification system, and an admin portal where the business owner can manage appointments and clients.
It uses Contentful to manage the general page content and takes advantage of all of the bleeding edge Next.js features like React Server Components, dynamic sitemaps, etc.
Customer facing: scheduling an appointment
Customer facing: scheduling an appointment

2024 and beyond

Moving from Rails API + Frontend App to a single app
Version 1.0 of Avante Cosmetic had two systems deployed––a backend Rails API and a frontend web app using Next.js. Both of these services were deployed separately and utilized an Ansible playbook for deployments that was finicky and often problematic. In 2024, I opted to move it off of this complicated stack and chose to migrate to use TRPC to allow for a full-stack experience. By moving away from a microservices pattern and moving everything into a single codebase, the development is now swift and easy. The site is deployed on Vercel and no longer requires the complicated deployment steps it did to deploy prior.
 
Creating an appointment in the admin system
Creating an appointment in the admin system

Notifications System

notion image
Perhaps the most complicated part of the Avante Cosmetic website is in its notifications. There are several notification paths around appointments, like when an appointment is submitted, confirmed, and when a reminder is in order. To manage these notifications we use a daily cron task that loops through on an daily interval instead of using a job scheduler. We use Twilio for SMS notifications and Postmark for email.
 
Viewing and managing appointments in the admin (names obfuscated for privacy)
Viewing and managing appointments in the admin (names obfuscated for privacy)
 
 
 
Andrew Martin is available for hire
Available for Hire
I am currently accepting inquiries for new programming projects, particularly those architecting, building, or contributing to sophisticated web applications using modern tooling and frameworks (think TypeScript, React, GraphQL, Node.JS, Elixir, or Ruby on Rails).

You can also e-mail me at hello@andrewmart.in or download my resume.