A powerful, role-based social media management platform with AI-powered content generation, built with React and secured with Auth0 authentication.
- Auth0 Integration - Secure authentication with industry-standard protocols
- Role-Based Access Control (RBAC) - Two distinct user roles:
- Manager - Full access to create, approve, and publish content
- Team Member - Create drafts and view content (approval required)
- Token Vault Integration - Secure credential management
- Multi-Platform Support
- Twitter (280 character limit)
- LinkedIn (Professional networking)
- Instagram (Visual-first content)
- AI-Powered Content Generation
- Smart content suggestions based on platform
- Platform-optimized formatting
- Tone and style adaptation
- Draft Management - Save and edit posts before submission
- Three-Stage Process
- Pending - Submitted by team members, awaiting review
- Approved - Reviewed and approved by managers
- Published - Live on social media platforms
- Complete Audit Trail - Track who created, approved, and published each post
- Bulk Actions - Approve or reject multiple posts at once
- Real-Time Statistics
- Total posts created
- Pending approvals
- Published content count
- Platform distribution
- Role-Specific Views - Customized dashboard based on user permissions
- Post History - Complete timeline of all activities
- Modern Design - Clean, professional interface built with Tailwind CSS
- Responsive Layout - Works seamlessly on desktop, tablet, and mobile
- Collapsible Sidebar - Maximize workspace when needed
- Status Indicators - Visual badges for post states
- Platform Icons - Easy identification of target platforms
- Node.js 16.x or higher
- npm 8.x or higher
- Git
- Clone the repository
git clone https://github.com/your-username/social-media-manager.git
cd social-media-manager- Install dependencies
npm install- Install Tailwind CSS
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p- Install Lucide React (for icons)
npm install lucide-react- Configure Tailwind CSS
Create/update tailwind.config.js:
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./src/**/*.{js,jsx,ts,tsx}",
],
theme: {
extend: {},
},
plugins: [],
}- Update
src/index.css
@tailwind base;
@tailwind components;
@tailwind utilities;- Start the development server
npm startThe app will open at http://localhost:3000
social-media-manager/
โโโ public/
โ โโโ index.html
โ โโโ favicon.ico
โโโ src/
โ โโโ App.jsx # Main application component
โ โโโ index.js # Entry point
โ โโโ index.css # Global styles with Tailwind
โ โโโ components/ # (Future: Component directory)
โโโ tailwind.config.js # Tailwind CSS configuration
โโโ postcss.config.js # PostCSS configuration
โโโ package.json # Dependencies and scripts
โโโ README.md # This file
- Launch the application
- Choose your role:
- Manager - Full access with approval capabilities
- Team Member - Content creation only
- Click "Create New Post with AI" button
- Select target platform (Twitter, LinkedIn, Instagram)
- Enter your content or click "Generate AI Suggestion"
- Review and edit the content
- Click "Submit for Approval" (Team Member) or "Publish Now" (Manager)
- Approve Posts - Review pending submissions and approve
- Reject Posts - Send back posts that need revision
- Publish Directly - Create and publish without approval
- View All Content - Access complete post history
- Create Drafts - Submit content for manager approval
- View Own Posts - Track status of submitted content
- Edit Drafts - Modify pending submissions
Create a .env file in the root directory:
# Auth0 Configuration (for future implementation)
REACT_APP_AUTH0_DOMAIN=your-domain.auth0.com
REACT_APP_AUTH0_CLIENT_ID=your-client-id
REACT_APP_AUTH0_AUDIENCE=your-api-audience
# API Configuration (for future implementation)
REACT_APP_API_URL=https://api.yourdomain.com
REACT_APP_AI_API_KEY=your-ai-api-keyChange Color Scheme - Edit Tailwind colors in tailwind.config.js:
theme: {
extend: {
colors: {
primary: '#3b82f6',
secondary: '#10b981',
}
}
}Add New Platforms - Update the platforms array in App.jsx:
const platforms = ['Twitter', 'LinkedIn', 'Instagram', 'Facebook', 'TikTok'];- React 18.x - Frontend framework
- Tailwind CSS 3.x - Utility-first CSS framework
- Lucide React - Beautiful icon library
- Auth0 - Authentication and authorization (integration ready)
- Create React App - Project bootstrapping
- Basic authentication simulation
- Role-based access control
- Post creation and management
- Approval workflow
- AI content suggestions
- Multi-platform support
- Real Auth0 integration
- Backend API integration
- Actual social media API connections
- Image upload and management
- Scheduling capabilities
- Analytics dashboard
- Multi-user collaboration
- Advanced analytics
- Content calendar view
- Performance metrics
- A/B testing features
- Mobile app version
Contributions are welcome! Please follow these steps:
- 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
- Use functional components with hooks
- Follow React best practices
- Use Tailwind utility classes for styling
- Write clean, commented code
- Test before submitting
- Demo Mode: Currently using simulated authentication (not production-ready)
- No Persistence: Data resets on page refresh (requires backend)
- AI Suggestions: Using mock data (requires OpenAI API integration)
- No Social API: Posts don't actually publish to platforms (requires platform APIs)
# Delete node_modules and reinstall
rm -rf node_modules package-lock.json
npm install
npm start# Reinstall lucide-react
npm uninstall lucide-react
npm install lucide-react# Clear cache and rebuild
npm run buildThis project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2024 Your Name
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- Your Name - Initial work - YourGitHub
- Auth0 for authentication best practices
- Tailwind CSS for amazing styling utilities
- Lucide for beautiful icons
- React community for excellent documentation
- DEV Community for project inspiration
- DEV Community Post: Read the article
โญ Star this repo if you find it helpful!
Made with โค๏ธ using React and Tailwind CSS
Happy Coding! ๐