BlogNova isn't just another blog platform — it's your creative launchpad. Built with a robust Node.js/Express backend and elegant EJS templates, BlogNova gives content creators the perfect balance of power and simplicity.
📝 Create → 🔍 Discover → 💬 Engage → 🌟 Inspire
🔐 Secure Authentication | User registration and login with multi-layer security |
🛡️ Smart Authorization | Granular permission controls for admins, editors, and readers |
📝 Rich Content Management | Create stunning blog posts with markdown support |
💬 Interactive Comments | Foster community engagement through threaded discussions |
📱 Responsive Design | Beautiful experience across all devices |
🔌 REST API | Seamless integration with frontend applications |
Backend | Frontend | Data & Auth | Tools |
---|---|---|---|
Node.js | EJS Templates | Your Database | Postman |
Express.js | CSS | Session Management | Nodemon |
RESTful API | Responsive Design | JWT Authentication | Git |
- Node.js (v14.x or higher)
- NPM (v6.x or higher)
- Your database of choice
# Clone the cosmic repository
git clone https://github.com/yourusername/blognova.git
# Navigate to the project
cd blognova
# Install the stellar dependencies
npm install
# Create your universe (.env file)
echo "PORT=3000
DB_URI=your_database_connection_string
SESSION_SECRET=your_super_secret_key
NODE_ENV=development" > .env
# Launch the rocket 🚀
npm run dev
POST /api/auth/register → Join the BlogNova universe
POST /api/auth/login → Get your access key
GET /api/auth/logout → Take a break
GET /api/posts → Discover all posts
GET /api/posts/:id → Explore a specific post
POST /api/posts → Create a new masterpiece
PUT /api/posts/:id → Refine your creation
DELETE /api/posts/:id → Remove what no longer serves
GET /api/users/profile → View your cosmic profile
PUT /api/users/profile → Evolve your identity
blognova/
│
├── 🏁 app.js # Your journey begins here
├── ⚙️ config/ # Universal constants
├── 🎮 controllers/ # Command center
├── 🛡️ middlewares/ # Guardians of the routes
├── 💾 models/ # Data structures
├── 🛣️ routes/ # Pathways
├── 👁️ views/ # Visual experiences
│ ├── partials/ # Reusable elements
│ ├── layouts/ # Design frameworks
│ └── pages/ # Unique destinations
├── 🌐 public/ # Shared treasures
│ ├── css/ # Visual magic
│ ├── js/ # Interactive spells
│ └── images/ # Visual stories
└── 🧪 tests/ # Quality assurance
- Import our enchanted collection:
BlogNova.postman_collection.json
- Set your environment variables like a true wizard
- Explore the API universe with ease
Variable | Description | Example |
---|---|---|
PORT | Your server's gateway | 3000 |
DB_URI | Path to your data realm | mongodb://localhost:27017/blognova |
SESSION_SECRET | Your magical phrase | superSecretSpell123 |
NODE_ENV | Your dimension | development |
# Launch for the masses
npm start
# Develop with auto-refresh
npm run dev
# Verify everything works
npm test
# Keep your code elegant
npm run lint
BlogNova protects your realm with:
- Password hashing with bcrypt
- CSRF protection
- HTTP security headers
- Input validation
- Rate limiting against dark forces
- Fork the repository (your own magic branch)
- Create your feature spell (
git checkout -b feature/amazing-magic
) - Commit your enhancements (
git commit -m 'Add some amazing magic'
) - Share your creation (
git push origin feature/amazing-magic
) - Open a scroll (Pull Request) for review