A modern, responsive social media platform built with React and Tailwind CSS where users can share their thoughts and ideas with the world.
- 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
Check out the live demo: PopX
- 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
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)
-
Clone the repository
git clone https://github.com/Akhil07-ctrl/Pop-X.git
-
Navigate to the client directory
cd client
-
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
to view the application.
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
- Visit the welcome page
- Click "Create Account"
- Fill in the registration form:
- Full Name (required)
- Phone Number (required)
- Email Address (required)
- Password (required)
- Company Name (optional)
- Agency status (required)
- Click "Create Account"
- You'll be redirected to the login page after successful registration
- From the welcome page, click "Login"
- Enter your credentials:
- Username (optional - will use email prefix if not provided)
- Email Address (required)
- Password (required)
- Click "Login"
- You'll be redirected to your profile page
- After logging in, you'll see your profile page
- Click the edit icon (pencil) to edit your profile
- Update your information:
- Name
- Bio
- Location
- Website
- Click the save icon to save changes or cancel icon to discard
- 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
The project uses Tailwind CSS v4 with a custom configuration. You can modify the styling by:
- Editing
tailwind.config.js
for theme customization - Modifying component styles directly in JSX files
- Adding custom CSS in
App.css
orindex.css
The app uses a violet-based color scheme:
- Primary:
violet-600
(#7c3aed) - Secondary:
violet-200
(#ddd6fe) - Accent:
purple-600
(#9333ea)
- Create a new file in
src/components/
- Import and use in
App.jsx
- Add routing if needed in the
Routes
section
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)
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.
-
Build the project
npm run build
-
Deploy to GitHub Pages
npm run deploy
-
Configure GitHub Pages
- Go to your repository settings
- Navigate to Pages section
- Select "Deploy from a branch"
- Choose
gh-pages
branch
-
Build the project
npm run build
-
Upload the
dist
folder to your hosting provider
In the client directory, you can run:
npm run dev
- Starts the development servernpm run build
- Builds the app for productionnpm run preview
- Preview the production build locallynpm run deploy
- Deploy to GitHub Pagesnpm run lint
- Run ESLint for code quality
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m 'Add some amazing feature'
- Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow React best practices
- Use functional components with hooks
- Maintain consistent code formatting
- Write descriptive commit messages
- Test your changes thoroughly
- Profile image upload is not yet implemented
- No backend integration (uses localStorage)
- Limited form validation
- No password reset functionality
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
Kundena Akhil
- Website: Personal Portfolio
- GitHub: @Akhil07-ctrl
- LinkedIn: LinkedIn
- Email: akhilkundena@gmail.com
- React - The web framework used
- Tailwind CSS - For styling
- Vite - Build tool
- React Router - For routing
- React Icons - For icons
If you have any questions or need help with the project:
- Check the documentation above
- Search existing issues on GitHub
- Create a new issue if you can't find a solution
- Contact the maintainer via email
Made with โค๏ธ and React