Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dracula27/hvac_site

HVAC company website template that stores customers' appointment requests in a database and uses SMTP to send confirmation emails and quote requests.
https://github.com/dracula27/hvac_site

api bootstrap5 express html5 javascript mailtrap mongodb mongoose node nodemailer

Last synced: 17 days ago
JSON representation

HVAC company website template that stores customers' appointment requests in a database and uses SMTP to send confirmation emails and quote requests.

Awesome Lists containing this project

README

        




Cooler Than You HVAC


Here for all your heating, ventilation, and air conditioning needs.




Table of Contents



  1. About The Project


  2. Usage

  3. Optimizations

  4. Lessons Learned

  5. Contact

  6. Acknowledgments

## About The Project

This is a template website for a company that uses frontend and backend technologies to enable a business to have a web presence that allows customers to schedule services and request quotes and get an automated email response upon a successful request. The customer is notified via the website when the request is successful or fails. The forms make use of an internal API to save customer info to a database and an external API to automate the emails.

(back to top)

### Built With

- ![HTML5](https://img.shields.io/badge/html5-e34f26?style=flat&logo=html5&logoColor=white)
- ![Bootstrap5](https://img.shields.io/badge/bootstrap-7952B3?style=flat&logo=bootstrap&logoColor=white)
- ![JavaScript](https://img.shields.io/badge/javascript-323330?style=flat&logo=javascript&logoColor=F7DF1E)
- ![MongoDB](https://img.shields.io/badge/mongodb-47A248?style=flat&logo=mongodb&logoColor=white)
- ![Express](https://img.shields.io/badge/express-000000?style=flat&logo=express&logoColor=white)
- ![Node](https://img.shields.io/badge/node-5FA04E?style=flat&logo=node.js&logoColor=white)
- ![Nodemailer](https://img.shields.io/badge/nodemailer-29abe2?style=flat&logo=node.js&logoColor=white)
- ![Mailtrap](https://img.shields.io/badge/mailtrap-22D172?style=flat&logo=mailtrap&logoColor=white)

(back to top)

## Usage

At this site you can:

- View services
- Schedule an appointment
- Request a quote

(back to top)

## Optimizations

This project can be improved by:

- [ ] In both forms:
- [ ] Improve validation
- [ ] Improve accessibility
- [ ] In Request a Quote form:
- [ ] Using a dropdown for the 'Service Needed' input
- [ ] In the Schedule a Service form:
- [ ] Not allowing the user to pick a date in the past
- [ ] Improve UX for picking a date and time
- [ ] Implement email verification

(back to top)

## Lessons Learned

- **Automated Emails.** Integrating automated emails with Mailtrap and Nodemailer is much easier than anticipated!
- **Internal API.** This was good practice with creating an internal API and also pulling from an external API in the same project.
- **Email Security.** This is a decent start on creating a site that automatically sends emails to a customer when they fill out a form online. However, for a production site, implementing security measures like email authentication and disabling the forms for a browser session after a customer sends a request would be advisable.

(back to top)

## Contact

Danielle Andrews - [@DrAcula_codes](https://twitter.com/DrAcula_codes 'Twitter/X') - [daniellerandrews](https://www.linkedin.com/in/daniellerandrews 'LinkedIn') - [email protected]

(back to top)

## Acknowledgments

A special thanks to these resources used in the project!

- [Bootstrap](https://getbootstrap.com/)
- [MongoDB](https://www.mongodb.com/)
- [Express](https://expressjs.com/)
- [Node](https://nodejs.org/)
- [Nodemailer](https://nodemailer.com/)
- [Mailtrap](https://mailtrap.io/)

(back to top)