A minimalist personal resume website, built with HTML5 UP templates and enhanced with Firebase password protection for private access. Deployed via GitHub Pages.
- Sleek & Responsive Design — Leveraging HTML5 UP templates for modern aesthetics.
- Password-Protected Access — Secure landing page that requires a password (checked via Firebase Realtime Database) before accessing content.
- Client-Side Authentication — Lightweight JavaScript handles the auth flow using
sessionStorage. - Deployed on GitHub Pages — Free, fast, and easy to maintain.
| Technology | Purpose |
|---|---|
| HTML5 / CSS3 | Static website structure and styling |
| JavaScript | Password input logic, animations |
| Firebase Realtime DB | Stores shared password securely |
| GitHub Pages | Static website hosting |
- Landing Page (
/) — User is prompted for a password. - Password Input — User enters password; JavaScript fetches password hash from Firebase.
- Validation Check — If correct, the user is redirected to
/welcome. - Session Persistence — Uses
sessionStorageto maintain authentication across the session. - Fallback — If the session expires, user is redirected back to
/.
git clone https://github.com/SpyrosDr/spyrosdr.github.io cd spyrosdr.github.io
- Go to Firebase Console.
- Create a new project (or use an existing one).
- Navigate to Realtime Database → Create Database.
- Choose the location and start in Test Mode (you can tighten security later).
- Add a simple structure like:
{ "auth": { "password": "your-secret-password" } } - Go to Project Settings → General → Your Apps and add a Web App.
- Copy the Firebase config snippet provided.
Open your project’s main.js and replace the Firebase configuration with your own:
const firebaseConfig = {
apiKey: "YOUR-API-KEY",
authDomain: "YOUR-PROJECT.firebaseapp.com",
databaseURL: "https://YOUR-PROJECT.firebaseio.com",
projectId: "YOUR-PROJECT-ID",
storageBucket: "YOUR-PROJECT.appspot.com",
messagingSenderId: "YOUR-MESSAGING-SENDER-ID",
appId: "YOUR-APP-ID"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);Make sure the database path and the key in your authentication fetch logic match /auth/password.
-
HTML5 UP — For the free, beautifully designed HTML/CSS templates.
-
Firebase Realtime Database — For lightweight, real-time data storage used in the password gate.
-
GitHub Pages — For free static hosting directly from the repository.