{"id":19009828,"url":"https://github.com/luan-neumann-dev/miniblog","last_synced_at":"2026-05-05T14:31:16.213Z","repository":{"id":246125814,"uuid":"819666655","full_name":"Luan-Neumann-Dev/MiniBlog","owner":"Luan-Neumann-Dev","description":"MiniBlog allows users to post and view content, with an integrated search feature to easily locate posts. Firebase is used as the database to manage posts and authentication effectively.","archived":false,"fork":false,"pushed_at":"2024-09-07T22:35:43.000Z","size":242,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-21T15:27:05.383Z","etag":null,"topics":["authentication","firebase","javascript","node","react"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Luan-Neumann-Dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-25T01:10:06.000Z","updated_at":"2024-09-07T22:36:17.000Z","dependencies_parsed_at":"2024-09-07T23:33:29.968Z","dependency_job_id":"b7ee674a-cbd3-4246-9d8f-34e9745f6a75","html_url":"https://github.com/Luan-Neumann-Dev/MiniBlog","commit_stats":null,"previous_names":["luan-neumann-dev/miniblog"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Luan-Neumann-Dev/MiniBlog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luan-Neumann-Dev%2FMiniBlog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luan-Neumann-Dev%2FMiniBlog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luan-Neumann-Dev%2FMiniBlog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luan-Neumann-Dev%2FMiniBlog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Luan-Neumann-Dev","download_url":"https://codeload.github.com/Luan-Neumann-Dev/MiniBlog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luan-Neumann-Dev%2FMiniBlog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32653444,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","firebase","javascript","node","react"],"created_at":"2024-11-08T19:09:01.896Z","updated_at":"2026-05-05T14:31:16.203Z","avatar_url":"https://github.com/Luan-Neumann-Dev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MiniBlog - React \u0026 Firebase\n\n\u003e A full-stack blog application built with React and Firebase, featuring authentication and real-time post management\n\n[![React](https://img.shields.io/badge/React-18+-61DAFB?style=for-the-badge\u0026logo=react\u0026logoColor=black)](https://react.dev/)\n[![Vite](https://img.shields.io/badge/Vite-4.x-646CFF?style=for-the-badge\u0026logo=vite\u0026logoColor=white)](https://vitejs.dev/)\n[![Firebase](https://img.shields.io/badge/Firebase-Backend-FFCA28?style=for-the-badge\u0026logo=firebase\u0026logoColor=black)](https://firebase.google.com/)\n\n![Project Demo](https://github.com/user-attachments/assets/8a73f16e-9a0c-4cfb-af26-282628446eda)\n![Project Demo](https://github.com/user-attachments/assets/3bf0c547-ff84-4518-9f95-a82925b6aad8)\n![Project Demo](https://github.com/user-attachments/assets/f71ded65-f438-4e53-8e2e-3cc32393669f)\n\n## 🎯 About\n\nMiniBlog is a full-stack web application that allows users to create, edit, and manage blog posts with authentication.\n\nThe project was built using React for the frontend and Firebase for backend services such as authentication and database. It focuses on modern frontend architecture, reusable hooks, and real-time data handling.\n\n## ✨ Key Features\n\n- 🔐 **Authentication System** - User registration and login using Firebase Auth\n- 📝 **Post Management** - Create, edit, and delete blog posts\n- 📊 **User Dashboard** - Manage your own posts\n- 🔎 **Search Functionality** - Filter posts by keywords\n- ⚡ **Real-time Database** - Data stored and fetched from Firestore\n- 🧩 **Custom Hooks** - Reusable logic for CRUD operations\n\n## 🛠️ Tech Stack\n\n**Frontend:**\n- React - UI library\n- Vite - Build tool\n- CSS Modules - Scoped styling\n\n**Backend (BaaS):**\n- Firebase Authentication - User management\n- Firestore - NoSQL database\n\n**Architecture:**\n- Context API - Global state management (Auth)\n- Custom Hooks - Data handling abstraction\n\n## 🚀 Quick Start\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/miniblog.git\n\n# Navigate to project\ncd miniblog\n\n# Install dependencies\nnpm install\n\n# Run the project\nnpm run dev\n```\n\nAccess:\n```\nhttp://localhost:5173\n```\n\n## 📁 Project Structure\n\n```\nsrc/\n├── components/        # Reusable components (Navbar, Footer, etc.)\n├── pages/             # Application pages\n├── hooks/             # Custom hooks (CRUD operations)\n├── context/           # Auth context\n├── firebase/          # Firebase configuration\n├── assets/            # Static assets\n├── App.jsx            # Main component\n└── main.jsx           # Entry point\n```\n\n## 💡 Technical Highlights\n\n### Custom Hooks for CRUD\n\nThe project abstracts Firestore operations into reusable hooks:\n```javascript\nconst { insertDocument } = useInsertDocument(\"posts\");\n```\n\n### Authentication with Context API\n\nGlobal authentication state managed via context:\n- User session control\n- Protected routes behavior\n- Centralized auth logic\n\n## 📚 What I Learned\n\n**Technical Skills:**\n\n- Building SPAs with React and Vite\n- Integrating Firebase (Auth + Firestore)\n- Creating reusable custom hooks\n- Managing global state with Context API\n\n**Best Practices:**\n\n- Separation of concerns\n- Component-based architecture\n- Hook-based logic reuse\n\n## 🗺️ Roadmap\n\n- [ ] Add likes/reactions to posts\n- [ ] Add comments system\n- [ ] Improve UI/UX\n- [ ]Add pagination\n- [ ] Deploy (Firebase Hosting / Vercel)\n\n## 📝 Notes\n- This is a learning project focused on modern React development\n- Uses Firebase as a backend service (BaaS)\n- Easily extendable into a full production blog\n\n## 📄 License\nMIT License\n\n## 👤 Author\n\n**Luan Henrique Neumann**\n\n- LinkedIn: [LuanNeumannDev](https://www.linkedin.com/in/luan-henrique-neumann-dev/)\n- GitHub: [@Luan-Neumann-Dev](https://github.com/Luan-Neumann-Dev)\n- Email: luan.neumann.dev@gmail.com\n\n---\n\n⭐ Found this helpful? Give it a star!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluan-neumann-dev%2Fminiblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluan-neumann-dev%2Fminiblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluan-neumann-dev%2Fminiblog/lists"}