Project InfoΒ Β β’Β Development TeamΒ Β β’Β Core FeaturesΒ Β β’Β Tech StackΒ Β β’Β RequirementsΒ Β β’Β InstallationΒ Β β’Β Usage Project Structure
Note
In regions with poor information flow, finding work becomes extremely challenging - you might not even know when others are in need of workers. CloudNest targets these underserved areas with a comprehensive workforce matching platform where not only companies, but everyone can post job opportunities and recruit talent. Compensation isn't limited to money - it's entirely up to your mutual agreement! We aim to solve problems for both employers and job seekers, creating a win-win platform for all.
Tip
- http://localhost:8000/docs - Interactive Swagger UI
- http://localhost:8000/api/v1/health - System Health Status
- http://localhost:5050 - pgAdmin Console
- http://localhost:9001 - MinIO Console
| Name | Role |
|---|---|
| ζ±ι©εΊ | Backend |
| δ½ηΎ©ηΏ | Backend |
| θε³»θͺ | Backend |
| θ‘ζι | Frontend |
| ι±ζ―ζΊ | Frontend |
The platform provides the following key features:
- User Management: Complete registration, login, and profile management system
- Job Posting: Employers can post job opportunities with skill requirements and compensation details
- Smart Search: Semantic job search engine powered by pgVector
- Application Management: Job application tracking and employer review mechanism
- File Management: Support for resume, portfolio, and other file uploads
- Skill System: Skill tagging and matching recommendations // - Location-based: Job recommendations based on geographical location
- Frontend: Vue
- Backend: FastAPI
- Database: PostgreSQL 15 + pgVector Extension
- File Storage: MinIO (S3-compatible)
- Database Migration: Alembic
- Vector Search: pgVector + sentence-transformers
- Containerization: Docker + Docker Compose
- CI/CD: GitHub Actions
- Package Management: uv
Caution
Please ensure the following environments are successfully set up
- Python 3.12 or higher
- uv package manager
- Docker and Docker Compose
- PostgreSQL 15+ (can use Docker for development)
- MinIO (or S3-compatible storage service)
Please refer to .env.example for required environment variables
git clone <your-repository-url>
cd backendcp .env.example .env
# Edit the .env file and fill in the necessary environment variablesdocker-compose up -duv sync# Run database migrations
uv run alembic upgrade head
# Check database connection
docker-compose psuv run fastapi dev main.pyThe service will start at http://127.0.0.1:8000
git clone <your-repository-url>
cd frontendnpm installnpm run dev- Root:
http://127.0.0.1:8000/- Basic API information - API Documentation:
http://127.0.0.1:8000/docs- Interactive Swagger UI - Health Check:
http://127.0.0.1:8000/api/v1/health- Service health status
POST /login- User loginPOST /register- User registrationPOST /refresh- Token refreshPOST /logout- User logout
GET /me- Get current user dataPUT /me- Update profileGET /- Batch query user profiles
GET /- Job list (with pagination and search)POST /- Post new jobGET /{job_id}- Job detailsPUT /{job_id}- Update job informationDELETE /{job_id}- Delete job
POST /- Submit applicationGET /- Query application recordsPUT /{application_id}- Update application status
POST /upload- File uploadGET /presign- Get download linkDELETE /- Delete file
GET /jobs- Semantic job search
# Generate new migration file
uv run alembic revision --autogenerate -m "description"
# Execute migration
uv run alembic upgrade head
# Check current version
uv run alembic current
# Rollback migration
uv run alembic downgrade -1# Check service status
docker-compose ps
# View database logs
docker-compose logs postgres
# Reset database (β οΈ will delete all data)
docker-compose down -v && docker-compose up -d- Access: http://localhost:9001
- Default credentials:
minioadmin/minioadmin
- Access: http://localhost:5050
- Credentials:
admin@example.com/admin123
backend/
βββ main.py # FastAPI application entry point
βββ pyproject.toml # Project dependencies and configuration
βββ alembic.ini # Database migration configuration
βββ docker-compose.yml # Development Docker services
βββ docker-compose.prod.yml # Production Docker services
βββ Dockerfile # Application Docker image
βββ .env.example # Environment variables template
βββ alembic/ # Alembic migration files
βββ app/
β βββ config.py # Application configuration management
β βββ database.py # Database connection and session management
β βββ dependencies.py # FastAPI dependency injection
β βββ minio.py # MinIO client configuration
β βββ models/ # SQLAlchemy data models
β β βββ users.py # User model
β β βββ jobs.py # Job model
β β βββ profiles.py # Profile model
β β βββ applications.py # Application model
β β βββ conversations.py # Conversation model
β β βββ ...
β βββ crud/ # Database operation layer
β β βββ user.py # User CRUD operations
β β βββ jobs.py # Job CRUD operations
β β βββ ...
β βββ router/ # API routing layer
β β βββ auth.py # Authentication routes
β β βββ jobs.py # Job-related routes
β β βββ profile.py # Profile routes
β β βββ files.py # File management routes
β β βββ ...
β βββ schemas/ # Pydantic data validation models
β β βββ auth.py # Authentication request/response models
β β βββ jobs.py # Job-related models
β β βββ ...
β βββ utils/ # Utility functions
β βββ auth.py # Authentication utilities
β βββ embedding_model.py # Vector embedding model
β βββ helpers.py # Common utilities
βββ deploy-scripts/ # Deployment scripts
βββ test/ # Test files
βββ .github/
βββ workflows/ # GitHub Actions CI/CD
βββ deploy.yml




