Essential information for maintaining and developing Hair by Angela.
hair-by-angelaThe application is built as a static site with Firebase as the backend-as-a-service (BaaS).
Main platform for serving the public website and the admin panel. Rewrites are configured in firebase.json to support single-page navigation logic.
Used for dynamic content management:
settings/contact_details: Stores address, phone, email, and social links.mail: Collection used for the Trigger Email extension to handle contact form submissions.reviews & portfolio: Collections for dynamic site content.Email/Password authentication is used to secure the /admin dashboard.
Used to host high-resolution portfolio images uploaded via the admin panel.
hair-by-angela/
├── public/ # Root of the hosted site
│ ├── index.html # Main landing page
│ ├── admin/ # Dashboard for Angela to manage content
│ ├── assets/
│ │ ├── css/ # Vanilla CSS (Modern design)
│ │ └── js/ # Main logic & Firebase init
│ └── images/ # Static image assets
├── firebase.json # Firebase configuration
├── firestore.rules # Database security rules
└── storage.rules # Storage security rules
Key configuration files you should know about:
firebase.json: Defines hosting rules, firestore rules path, and storage rules path..firebaserc: Maps local environment to the hair-by-angela Firebase project.public/assets/js/main.js (for the public site) and public/admin/index.html (for the admin panel).If you need to move this site to a different Firebase account or project, follow these steps:
Go to the Firebase Console and create a new project. Enable the following services:
The Firebase configuration is currently hardcoded in three locations. You must replace the firebaseConfig object in each with the credentials from your new project settings (Project Settings > General > Your Apps):
public/assets/js/firebase-config.jspublic/assets/js/main.jspublic/admin/index.htmlAlso, update the .firebaserc file in the project root to point to your new project ID:
{
"projects": {
"default": "your-new-project-id"
}
}
Since the new project will have an empty user list, you must manually add an admin user in the Firebase Console (Authentication > Users) so you can log in to the admin dashboard.
Run firebase deploy from your terminal to push the rules, indexes, and hosting files.
npm install -g firebase-tools
firebase login
Since this is a static site, you can serve it locally using any static server or the Firebase emulator:
firebase serve
To deploy changes to the live site:
firebase deploy
Note: Use firebase deploy --only hosting if you only made frontend changes.