This project is a user-friendly blog platform developed using modern React technologies.
- Responsive Design: Perfect appearance on all devices
- Modern Material-UI Design: Compliant with Material Design principles
- Tailwind CSS: Fast and consistent styling
- Gradient Backgrounds: Modern visual effects
- Glass Morphism: Transparent and blur effects
- React 18: Latest React features
- Redux Toolkit: Advanced state management
- React Router v6: Modern routing system
- Formik & Yup: Form management and validation
- Axios: HTTP requests
- React Helmet: SEO optimization
- Redux Persist: Data persistence
- Search Function: Quick search in blog posts
- Like System: Likes and interactions
- Comment System: User interactions
- Profile Management: Personal profile page
- Blog Management: Add, edit, delete posts
- Responsive Navigation: Mobile-compatible menu
- Error Boundary: Error catching and user-friendly error messages
- Loading States: Loading indicators
- React.memo: Performance optimization
- useMemo & useCallback: Prevent unnecessary renders
- Lazy Loading: Improve page performance
- Node.js (v16 or higher)
- npm or yarn
- Clone the project:
git clone <repository-url>
cd Blog-App- Install dependencies:
npm install- Set up environment variables:
Create a
.envfile and add the following variables:
REACT_APP_BASE_URL=https://blog-backend-clarusway.herokuapp.comNote: Demo data will be used if API connection is not available.
- Start the project:
npm start- Open in browser:
http://localhost:3000
src/
โโโ app/
โ โโโ store.jsx # Redux store configuration
โโโ components/
โ โโโ auth/
โ โ โโโ LoginForm.jsx
โ โ โโโ RegisterForm.jsx
โ โโโ blog/
โ โ โโโ BlogCard.jsx
โ โ โโโ CommentForm.jsx
โ โ โโโ DeleteModal.jsx
โ โ โโโ NewBlogForm.jsx
โ โ โโโ UpdateModal.jsx
โ โโโ ErrorBoundary.jsx
โ โโโ Loading.jsx
โ โโโ Footer.jsx
โ โโโ NavBar.jsx
โโโ features/
โ โโโ authSlice.jsx # Authentication state
โ โโโ blogSlice.jsx # Blog state
โโโ hooks/
โ โโโ useAuthCalls.jsx
โ โโโ useAxios.jsx
โ โโโ useBlogCalls.jsx
โโโ pages/
โ โโโ About.jsx
โ โโโ Dashboard.jsx
โ โโโ Detail.jsx
โ โโโ Login.jsx
โ โโโ MyBlogs.jsx
โ โโโ NewBlog.jsx
โ โโโ NotFound.jsx
โ โโโ Profile.jsx
โ โโโ Register.jsx
โโโ router/
โ โโโ AppRouter.jsx
โ โโโ PrivateRouter.jsx
โโโ styles/
โ โโโ globalStyle.jsx
โโโ App.js
โโโ index.css
โโโ index.js
- Primary: Blue tones (#0ea5e9)
- Secondary: Gray tones (#64748b)
- Background: Gradient backgrounds
- Text: Dark gray tones
- Font Family: Inter (Google Fonts)
- Font Weights: 300, 400, 500, 600, 700
- Cards: Rounded corners, shadow effects
- Buttons: Hover animations
- Forms: Modern input design
- Navigation: Fixed header, glass effect
- React.memo: BlogCard component optimized
- useMemo: Filtered blog list memoized
- useCallback: Event handlers optimized
- Lazy Loading: Page-based lazy loading
- Code Splitting: Route-based code splitting
npm start # Start development server
npm run build # Create production build
npm test # Run tests
npm run eject # Create React App eject (use with caution)- Create feature branch
- Develop necessary components
- Test
- Create pull request
- Mobile First: Mobile-first design approach
- Breakpoints:
- xs: 0px
- sm: 600px
- md: 960px
- lg: 1280px
- xl: 1920px
- Error Boundary: Application-wide error catching
- Toast Notifications: User notifications
- Loading States: Loading status display
- Fallback UI: Alternative interface in error states
- React Helmet: Meta tag management
- Semantic HTML: Meaningful HTML structure
- Alt Text: Visual accessibility
- Structured Data: Search engine optimization
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Create Pull Request
This project is licensed under the MIT License.
- Material-UI team
- React team
- Tailwind CSS team
- All open source contributors
Note: This project is developed for educational purposes and is continuously updated.