A full-stack application for scheduling and managing social media content across multiple platforms.
- 🔐 User Authentication (Login/Register)
- 📝 Create and Schedule Posts
- 🔄 Multiple Platform Integration
- 📊 Analytics Dashboard
- ⚙️ Platform Settings Management
- 📋 Activity Logs
- 🎯 Post Management
- React.js
- React Router for navigation
- React Bootstrap for UI components
- Axios for API requests
- Context API for state management
- Laravel PHP Framework
- MySQL Database
- RESTful API Architecture
Before you begin, ensure you have the following installed:
- Node.js (v14 or higher)
- PHP (v8.0 or higher)
- Composer
- MySQL
- Git
- Clone the repository:
git clone <repository-url>
cd content-scheduler
- Install PHP dependencies:
composer install
- Create and configure your
.env
file:
cp .env.example .env
- Generate application key:
php artisan key:generate
- Configure your database in
.env
:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=content_scheduler
DB_USERNAME=your_username
DB_PASSWORD=your_password
- Run migrations:
php artisan migrate fresh --seed
- Start the Laravel development server:
php artisan serve
- Navigate to the frontend directory:
cd content-ui
- Install dependencies:
npm install
- Create
.env
file:
cp .env.example .env
- Configure your API URL in
.env
:
VITE_API_URL=http://localhost:8000/api
- Start the development server:
npm run dev
- Access the application at
http://localhost:3000
- Register a new account or login with existing credentials
- Navigate through the application using the top navigation bar
- Create and schedule posts using the Create Post form
- Manage your platforms in the Settings section
- View analytics and activity logs
content-scheduler/
├── app/ # Laravel backend
│ ├── Http/ # Controllers and Middleware
│ ├── Models/ # Database Models
│ └── Services/ # Business Logic
├── content-ui/ # React frontend
│ ├── src/
│ │ ├── components/ # React Components
│ │ ├── api/ # API Integration
│ │ └── router.jsx # Route Configuration
└── database/ # Database Migrations
- postman collection : https://api.postman.com/collections/8195041-366b838d-038e-4e05-806a-d1499884af28?access_key=PMAT-01JW5XPFRDTBKXNMMKD1ME5BKG
- POST
/api/login
- User login - POST
/api/register
- User registration - POST
/api/logout
- User logout
- GET
/api/posts
- List all posts - POST
/api/posts
- Create new post - GET
/api/posts/{id}
- Get post details - PUT
/api/posts/{id}
- Update post - DELETE
/api/posts/{id}
- Delete post
- GET
/api/platforms
- List all platforms - POST
/api/platforms
- Add new platform - PUT
/api/platforms/{id}
- Update platform - DELETE
/api/platforms/{id}
- Delete platform
# Backend tests
php artisan test
# Frontend tests
npm test
# Backend
composer run lint
# Frontend
npm run lint
- Build the frontend:
cd content-ui
npm run build
- Configure your production environment variables
- Set up your web server (Apache/Nginx)
- Deploy the Laravel application
- Configure SSL certificates
- Set up database backups
- 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
- All API endpoints are protected with authentication
- Passwords are hashed using bcrypt
- CSRF protection enabled
- Input validation on all forms
- XSS protection
- Rate limiting on API endpoints