A modern, feature-rich blogging platform built with vanilla JavaScript, Firebase, and Express. Create, manage, and share your stories with a clean and intuitive interface.
- 📝 Rich text editor with real-time formatting
- 🖼️ Image upload and management
- 🌓 Dark mode support
- 📱 Responsive design
- 🔐 User authentication
- 💾 Auto-save functionality
- 🚀 Performance optimized
- 📊 User dashboard
- 💫 Smooth animations
- Node.js
- NPM
- Firebase account
- Clone the repository
git clone https://github.com/Paulherveph/Blogging-Platform
cd Blogging-Platform- Install dependencies
npm i- Create a
.envfile in the root directory (use.env.exampleas a template)
cp .env.example .env- Set up Firebase:
- Create a new project in Firebase Console
- Enable Authentication (Email/Password)
- Create a Firestore database
- Enable Storage
- Add your Firebase configuration to the
.envfile - Create a
firebase.jsfile in the JS file found in the Public directory (use.env.exampleas a template)
cd .\public\JS\
cp firebase.js.example firebase.jsUpdate the Firebase configuration in public/JS/firebase.js with your project's credentials.
- Start the development server
npm run devThe application will be available at http://localhost:3001
- Click on "login" in the navigation bar and create an account
- Click on "Editor" in the navigation bar
- Add a banner image (optional)
- Write your blog title
- Use the rich text editor to write your content
- Format text using the toolbar
- Add images by clicking the image button or drag & drop
- Use keyboard shortcuts for common formatting
- Click "Publish" when you're ready
- Click on on your "Profile username" on the navigation bar, and click on "Dashboard" on the navigation containter that will slide down
- View all your published posts
- Edit or delete posts as needed
- Monitor post engagement
The platform is PWA-ready with:
- Service Worker for offline support
- Manifest file for installation
- Caching strategies for better performance
- CORS protection
- Rate limiting
- Helmet security headers
- File upload restrictions
- Authentication state management
- Secure session handling
public/
CSS/
img/
JS/
uploads/
html files
config.js
package.json
server.js
npm start: Start the servernpm run dev: Start development servernpm run prod: Start production server with production settings
This project is licensed under the MIT License - see the LICENSE file for details.
- Firebase for authentication and database
- Express.js for the server
- Contributors and maintainers
-
Firebase Configuration
- Ensure all Firebase environment variables are set
- Check Firebase Console for correct configuration
- Verify authentication methods are enabled
-
Image Upload Issues
- Check storage permissions in Firebase
- Verify file size limits in
config.js - Ensure proper MIME types are allowed
-
Development Server
- Clear browser cache (Ctrl + F5)
- Check console for errors
- Verify port availability
For more issues, please check the Issues page.