View page here: MichaelFlohrschuetz.com
This project started as a static website to learn HTML and CSS, but turned into a full-grown portfolio website.
For practice reasons I chose to refrain from rebuilding it using libraries or build tools, so every line of code here is hand-written HTML, CSS and JavaScript.
For hosting, I simply upload the files via FTP. I plan to integrate a GitHub action to automate this process.
To protect my email address from spam bots I created a AWS API and a AWS lamda function which is evoked upon submission of the contact form. It sends me an email with the form content through AWS SES. For this I used serverless module. So I kind of lied above when saying there is no library in this project. But I didn't in the sense that there is no library used for the actual website it self.
Note: Since I want to receive the email in my google mail inbox, I had to use a second email address as the sender address, because google mail hides emails sent and received by the same account.
- Install serverless library:
npm install -g serverless
- Get credentials from AWS Management Console
- Configure serverless
serverless config credentials --provider aws --key ACCESS_KEY_ID --secret SECRET_ACCESS_KEY
- Create
secrets.json
in the contact-form-api folder containing this info:{ "NODE_ENV": "dev", "RECIPIENT": "YOUR_EMAIL-ADRESS_1", "SENDER": "YOUR_EMAIL-ADRESS_2", "DOMAIN": "http://YOUR_DOMAIN", "DOMAIN_WWW": "https://www.YOUR_DOMAIN" }
- Navigate terminal into contact-form-api folder, then run
serverless deploy
- Replace AWS lambda URL in contact-form.js