A modern social media application for sharing beautiful locations and spots, built with React and Material-UI. This project is a React conversion of the original JavaScript implementation, featuring a more robust and maintainable architecture.
-
Profile Management
- Custom profile picture upload
- Edit profile information
- Responsive profile layout
-
Post Management
- Create new posts with images and captions
- View posts in a responsive grid layout
- Detailed post view with modal interface
- Like and delete functionality
- Image error handling with fallback images
-
Modern UI/UX
- Material Design components
- Responsive layout for all screen sizes
- Smooth animations and transitions
- Interactive hover effects
- Modal-based interactions
- React - Frontend library
- Material-UI - UI component library
- Vite - Build tool and development server
- Tailwind CSS - Utility-first CSS framework
- Node.js (v14 or higher)
- npm or yarn
- Clone the repository
git clone https://github.com/caisere/react-instaspots.git
cd react-instaspots- Install dependencies
npm install
# or
yarn install- Start the development server
npm run dev
# or
yarn dev- Open http://localhost:5173 in your browser
react-instaspots/
├── src/
│ ├── components/ # React components
│ │ ├── card.jsx # Post grid component
│ │ ├── editprofile.jsx# Profile editing modal
│ │ ├── footer.jsx # Footer component
│ │ ├── header.jsx # Header component
│ │ ├── newpost.jsx # New post creation modal
│ │ ├── postdetails.jsx# Individual post component
│ │ ├── profile.jsx # Profile component
│ │ └── viewpost.jsx # Post viewing modal
│ ├── cardjson/ # Mock data
│ ├── styles/ # CSS styles
│ ├── App.jsx # Main application component
│ ├── main.jsx # Application entry point
│ └── theme.js # Material-UI theme configuration
├── public/ # Static assets
└── package.json # Project dependencies and scripts
-
Component-Based Architecture
- Modular and reusable components
- Better separation of concerns
- Easier maintenance and testing
-
State Management
- React's useState for local state management
- Prop drilling for component communication
- Consistent state updates
-
Enhanced UI/UX
- Material-UI components for consistent design
- Responsive design improvements
- Better error handling
- Loading states and animations
-
Modern Development Features
- Hot Module Replacement (HMR)
- ESLint configuration
- Modern JavaScript features
- Better build optimization
- Add user authentication
- Implement backend integration
- Add comment functionality
- Implement image optimization
- Add share functionality
- Implement user search
- Add post location mapping
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE.md file for details
- Original JavaScript project inspiration
- Material-UI team for the amazing component library
- React community for the excellent documentation and resources
Made with ❤️ by [Caisere]