Skip to content

Caisere/instaSpot-react

Repository files navigation

InstaSpots 📸

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.

🌟 Features

  • 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

🛠️ Built With

🚀 Getting Started

Prerequisites

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

Installation

  1. Clone the repository
git clone https://github.com/caisere/react-instaspots.git
cd react-instaspots
  1. Install dependencies
npm install
# or
yarn install
  1. Start the development server
npm run dev
# or
yarn dev
  1. Open http://localhost:5173 in your browser

📁 Project Structure

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

🔄 Key Improvements from JavaScript Version

  1. Component-Based Architecture

    • Modular and reusable components
    • Better separation of concerns
    • Easier maintenance and testing
  2. State Management

    • React's useState for local state management
    • Prop drilling for component communication
    • Consistent state updates
  3. Enhanced UI/UX

    • Material-UI components for consistent design
    • Responsive design improvements
    • Better error handling
    • Loading states and animations
  4. Modern Development Features

    • Hot Module Replacement (HMR)
    • ESLint configuration
    • Modern JavaScript features
    • Better build optimization

🎯 Future Improvements

  • Add user authentication
  • Implement backend integration
  • Add comment functionality
  • Implement image optimization
  • Add share functionality
  • Implement user search
  • Add post location mapping

📝 Contributing

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

📜 License

This project is licensed under the MIT License - see the LICENSE.md file for details

🙏 Acknowledgments

  • Original JavaScript project inspiration
  • Material-UI team for the amazing component library
  • React community for the excellent documentation and resources

Made with ❤️ by [Caisere]

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published