VaniPost is a social media automation platform that helps you create, schedule, and manage posts across multiple social media platforms.
- Python 3.11+
- Node.js 18+
- Docker & Docker Compose
- Poetry (recommended) or pip
-
Clone and setup the project:
git clone <repository-url> cd vanipost
-
Run the setup script:
./scripts/dev.sh
-
Start the services:
Option A: Using scripts
# Terminal 1 - Backend ./scripts/start-backend.sh # Terminal 2 - Frontend ./scripts/start-frontend.sh
Option B: Using Docker Compose
docker-compose up
-
Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- Framework: FastAPI with async/await
- Database: PostgreSQL with SQLAlchemy ORM
- Cache: Redis for session management
- API: RESTful API with automatic OpenAPI docs
- Framework: React 18 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- State Management: React hooks
- Containerization: Docker & Docker Compose
- Database: PostgreSQL 15
- Cache: Redis 7
- Development: Hot reload for both frontend and backend
vanipost/
├── backend/ # FastAPI backend
│ ├── app/
│ │ ├── api/ # API routes
│ │ ├── core/ # Configuration
│ │ ├── db/ # Database setup
│ │ ├── models/ # SQLAlchemy models
│ │ ├── schemas/ # Pydantic schemas
│ │ └── main.py # FastAPI app
│ └── Dockerfile
├── frontend/ # React frontend
│ ├── src/
│ │ ├── App.tsx # Main component
│ │ └── index.css # Tailwind styles
│ ├── package.json
│ └── Dockerfile
├── scripts/ # Development scripts
├── docker-compose.yml # Docker services
└── README.md
cd backend
poetry install
poetry run uvicorn app.main:app --reload
cd frontend
npm install
npm run dev
# TODO: Add Alembic migrations
# Backend tests
cd backend
poetry run pytest
# Frontend tests
cd frontend
npm run test
GET /health
- Health checkGET /api/v1/health/detailed
- Detailed health with DB statusGET /api/v1/posts/
- List postsPOST /api/v1/posts/
- Create postGET /api/v1/posts/{id}
- Get post by IDPUT /api/v1/posts/{id}
- Update postDELETE /api/v1/posts/{id}
- Delete post
- ✅ FastAPI backend with async support
- ✅ React frontend with TypeScript
- ✅ PostgreSQL database with SQLAlchemy
- ✅ Redis caching
- ✅ Docker containerization
- ✅ Hot reload development
- ✅ API documentation
- ✅ CORS configuration
- 🚧 Post scheduling (coming soon)
- 🚧 Multi-platform posting (coming soon)
- 🚧 User authentication (coming soon)