๐ŸŒ AIๆœ็ดข & ไปฃ็† ไธป้กต
Skip to content

iamfatihay/Blog-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

32 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Blog App - Modern React Blog Platform

This project is a user-friendly blog platform developed using modern React technologies.

๐Ÿš€ Features

โœจ Modern UI/UX

  • 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

๐Ÿ”ง Technical Features

  • 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

๐Ÿ“ฑ User Experience

  • 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

๐Ÿ›ก๏ธ Security and Performance

  • 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

๐Ÿ› ๏ธ Installation

Requirements

  • Node.js (v16 or higher)
  • npm or yarn

Steps

  1. Clone the project:
git clone <repository-url>
cd Blog-App
  1. Install dependencies:
npm install
  1. Set up environment variables: Create a .env file and add the following variables:
REACT_APP_BASE_URL=https://blog-backend-clarusway.herokuapp.com

Note: Demo data will be used if API connection is not available.

  1. Start the project:
npm start
  1. Open in browser:
http://localhost:3000

๐Ÿ“ Project Structure

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

๐ŸŽจ Design System

Color Palette

  • Primary: Blue tones (#0ea5e9)
  • Secondary: Gray tones (#64748b)
  • Background: Gradient backgrounds
  • Text: Dark gray tones

Typography

  • Font Family: Inter (Google Fonts)
  • Font Weights: 300, 400, 500, 600, 700

Components

  • Cards: Rounded corners, shadow effects
  • Buttons: Hover animations
  • Forms: Modern input design
  • Navigation: Fixed header, glass effect

๐Ÿš€ Performance Optimizations

  1. React.memo: BlogCard component optimized
  2. useMemo: Filtered blog list memoized
  3. useCallback: Event handlers optimized
  4. Lazy Loading: Page-based lazy loading
  5. Code Splitting: Route-based code splitting

๐Ÿ”ง Development

Available Scripts

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)

Adding New Features

  1. Create feature branch
  2. Develop necessary components
  3. Test
  4. Create pull request

๐Ÿ“ฑ Responsive Design

  • Mobile First: Mobile-first design approach
  • Breakpoints:
    • xs: 0px
    • sm: 600px
    • md: 960px
    • lg: 1280px
    • xl: 1920px

๐Ÿ›ก๏ธ Error Management

  • Error Boundary: Application-wide error catching
  • Toast Notifications: User notifications
  • Loading States: Loading status display
  • Fallback UI: Alternative interface in error states

๐Ÿ“ˆ SEO Optimization

  • React Helmet: Meta tag management
  • Semantic HTML: Meaningful HTML structure
  • Alt Text: Visual accessibility
  • Structured Data: Search engine optimization

๐Ÿค Contributing

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Create Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License.

๐Ÿ™ Acknowledgments

  • Material-UI team
  • React team
  • Tailwind CSS team
  • All open source contributors

Note: This project is developed for educational purposes and is continuously updated.