Skip to content

PopX is a modern social media platform built with React, featuring user authentication, profile management, and social interactions. Users can create accounts, log in, and share thoughts with a clean, intuitive interface. The application uses localStorage for data persistence and includes features like company profiles and agency status.

Notifications You must be signed in to change notification settings

Akhil07-ctrl/Pop-X

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

PopX - Social Media Platform

A modern, responsive social media platform built with React and Tailwind CSS where users can share their thoughts and ideas with the world.

๐ŸŒŸ Features

  • User Authentication: Complete signup and login system
  • Profile Management: Editable user profiles with bio, location, and website
  • Responsive Design: Mobile-first design that works on all devices
  • Modern UI: Clean, intuitive interface built with Tailwind CSS
  • Local Storage: Persistent user data storage
  • Dynamic Navigation: Context-aware navigation based on user state

๐Ÿš€ Live Demo

Check out the live demo: PopX

๐Ÿ› ๏ธ Tech Stack

  • Frontend Framework: React 19.1.0
  • Styling: Tailwind CSS v4
  • Routing: React Router DOM 7.6.2
  • Icons: React Icons 5.5.0
  • Build Tool: Vite 6.3.5
  • Deployment: GitHub Pages

๐Ÿ“‹ Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (version 16.0 or higher)
  • npm (version 7.0 or higher)
  • Git (for version control)

๐Ÿ”ง Installation

  1. Clone the repository

    git clone https://github.com/Akhil07-ctrl/Pop-X.git
  2. Navigate to the client directory

    cd client
  3. Install dependencies

    npm install
  4. Start the development server

    npm run dev
  5. Open your browser Navigate to http://localhost:5173 to view the application.

๐Ÿ“ Project Structure

PopX/
โ”œโ”€โ”€ client/
โ”‚   โ”œโ”€โ”€ public/
โ”‚   โ”‚   โ””โ”€โ”€ vite.svg
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ assets/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ react.svg
โ”‚   โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ welcome.jsx      # Landing page component
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ login.jsx        # Login form component
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ signUp.jsx       # Registration form component
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ profile.jsx      # User profile component
โ”‚   โ”‚   โ”œโ”€โ”€ App.css              # Global styles
โ”‚   โ”‚   โ”œโ”€โ”€ App.jsx              # Main app component with routing
โ”‚   โ”‚   โ”œโ”€โ”€ index.css            # Tailwind CSS imports
โ”‚   โ”‚   โ””โ”€โ”€ main.jsx             # React app entry point
โ”‚   โ”œโ”€โ”€ eslint.config.js         # ESLint configuration
โ”‚   โ”œโ”€โ”€ index.html               # HTML template
โ”‚   โ”œโ”€โ”€ package.json             # Dependencies and scripts
โ”‚   โ”œโ”€โ”€ postcss.config.js        # PostCSS configuration
โ”‚   โ”œโ”€โ”€ tailwind.config.js       # Tailwind CSS configuration
โ”‚   โ””โ”€โ”€ vite.config.js           # Vite configuration
โ””โ”€โ”€ README.md                    # Project documentation

๐ŸŽฏ Usage

Creating an Account

  1. Visit the welcome page
  2. Click "Create Account"
  3. Fill in the registration form:
    • Full Name (required)
    • Phone Number (required)
    • Email Address (required)
    • Password (required)
    • Company Name (optional)
    • Agency status (required)
  4. Click "Create Account"
  5. You'll be redirected to the login page after successful registration

Logging In

  1. From the welcome page, click "Login"
  2. Enter your credentials:
    • Username (optional - will use email prefix if not provided)
    • Email Address (required)
    • Password (required)
  3. Click "Login"
  4. You'll be redirected to your profile page

Managing Your Profile

  1. After logging in, you'll see your profile page
  2. Click the edit icon (pencil) to edit your profile
  3. Update your information:
    • Name
    • Email
    • Bio
    • Location
    • Website
  4. Click the save icon to save changes or cancel icon to discard

Navigation

  • Home Button: Returns to the welcome page
  • Profile Button: Access your profile (when logged in)
  • Logout Button: Sign out and return to welcome page
  • Back Buttons: Navigate to previous pages

๐ŸŽจ Customization

Tailwind CSS Configuration

The project uses Tailwind CSS v4 with a custom configuration. You can modify the styling by:

  1. Editing tailwind.config.js for theme customization
  2. Modifying component styles directly in JSX files
  3. Adding custom CSS in App.css or index.css

Color Scheme

The app uses a violet-based color scheme:

  • Primary: violet-600 (#7c3aed)
  • Secondary: violet-200 (#ddd6fe)
  • Accent: purple-600 (#9333ea)

Adding New Components

  1. Create a new file in src/components/
  2. Import and use in App.jsx
  3. Add routing if needed in the Routes section

๐Ÿ“ฑ Responsive Design

The application is fully responsive and optimized for:

  • Mobile devices (320px and up)
  • Tablets (768px and up)
  • Desktop (1024px and up)
  • Large screens (1280px and up)

๐Ÿ”’ Data Storage

Currently, the app uses localStorage for data persistence:

  • User profiles: Stored as JSON in currentUser key
  • Registered users: Stored as array in registeredUsers key
  • Session management: Automatic login state detection

Note: In a production environment, you would replace localStorage with a proper backend database and authentication system.

๐Ÿš€ Deployment

GitHub Pages Deployment

  1. Build the project

    npm run build
  2. Deploy to GitHub Pages

    npm run deploy
  3. Configure GitHub Pages

    • Go to your repository settings
    • Navigate to Pages section
    • Select "Deploy from a branch"
    • Choose gh-pages branch

Manual Deployment

  1. Build the project

    npm run build
  2. Upload the dist folder to your hosting provider

๐Ÿ“œ Available Scripts

In the client directory, you can run:

  • npm run dev - Starts the development server
  • npm run build - Builds the app for production
  • npm run preview - Preview the production build locally
  • npm run deploy - Deploy to GitHub Pages
  • npm run lint - Run ESLint for code quality

๐Ÿค Contributing

Contributions are welcome! Please follow these steps:

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

Development Guidelines

  • Follow React best practices
  • Use functional components with hooks
  • Maintain consistent code formatting
  • Write descriptive commit messages
  • Test your changes thoroughly

๐Ÿ› Known Issues

  • Profile image upload is not yet implemented
  • No backend integration (uses localStorage)
  • Limited form validation
  • No password reset functionality

๐Ÿ”ฎ Future Enhancements

  • Backend API integration
  • Real-time messaging
  • Post creation and sharing
  • Image upload functionality
  • Advanced user search
  • Email verification
  • Password reset
  • Dark mode support
  • Push notifications
  • Social media integrations

๐Ÿ“„ License

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

๐Ÿ‘จโ€๐Ÿ’ป Author

Kundena Akhil

๐Ÿ™ Acknowledgments

๐Ÿ“ž Support

If you have any questions or need help with the project:

  1. Check the documentation above
  2. Search existing issues on GitHub
  3. Create a new issue if you can't find a solution
  4. Contact the maintainer via email

Made with โค๏ธ and React

About

PopX is a modern social media platform built with React, featuring user authentication, profile management, and social interactions. Users can create accounts, log in, and share thoughts with a clean, intuitive interface. The application uses localStorage for data persistence and includes features like company profiles and agency status.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published