Skip to content

mch-cloudmosa-team4/CloudNest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CloudNest

Bridging Communities, Creating Opportunities

Project InfoΒ Β β€’Β  Development TeamΒ Β β€’Β  Core FeaturesΒ Β β€’Β  Tech StackΒ Β β€’Β  RequirementsΒ Β β€’Β  InstallationΒ Β β€’Β  Usage Project Structure

Note

CloudNest - "Bridging Communities, Creating Opportunities"

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.

Project Info

Tip

Development Team

Name Role
ζœ±ι©›εΊ­ Backend
何義翔 Backend
葉峻θͺ  Backend
θ”‘ζ˜€ιŒš Frontend
ι‚±ζŒ―ζΊ Frontend

Contributors

Core Features

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

Tech Stack

CleanShot 2025-09-21 at 12 19 22@2x

Core Technologies

  • 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

Requirements

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

Installation

Backend

1. Clone the Repository

git clone <your-repository-url>
cd backend

2. Set Up Environment Variables

cp .env.example .env
# Edit the .env file and fill in the necessary environment variables

3. Start Infrastructure Services (PostgreSQL + MinIO)

docker-compose up -d

4. Install Python Dependencies

uv sync

5. Initialize Database

# Run database migrations
uv run alembic upgrade head

# Check database connection
docker-compose ps

6. Start Development Server

uv run fastapi dev main.py

The service will start at http://127.0.0.1:8000

Frontend

1. Clone the Repository

git clone <your-repository-url>
cd frontend

2. Install the Package

npm install

3. Run the Frontend

npm run dev

Usage

API Endpoints Overview

  • 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

Main Feature Modules

πŸ” Authentication System (/api/v1/auth)

  • POST /login - User login
  • POST /register - User registration
  • POST /refresh - Token refresh
  • POST /logout - User logout

πŸ‘€ Profile Management (/api/v1/profile)

  • GET /me - Get current user data
  • PUT /me - Update profile
  • GET / - Batch query user profiles

πŸ’Ό Job Management (/api/v1/jobs)

  • GET / - Job list (with pagination and search)
  • POST / - Post new job
  • GET /{job_id} - Job details
  • PUT /{job_id} - Update job information
  • DELETE /{job_id} - Delete job

πŸ“„ Application Management (/api/v1/applications)

  • POST / - Submit application
  • GET / - Query application records
  • PUT /{application_id} - Update application status

πŸ“ File Management (/api/v1/files)

  • POST /upload - File upload
  • GET /presign - Get download link
  • DELETE / - Delete file

πŸ” Search Functionality (/api/v1/search)

  • GET /jobs - Semantic job search

Database Management

Alembic Migration Commands

# 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

Docker Database Operations

# 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

Development Tools

MinIO Management Console

pgAdmin Database Management

Frontend Interface

1. Login and Register

image

2. Home Page

image

3. Chatroom and Notification

image

Endpoints Structure

image

Project Structure

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

About

CloudNest - A workforce matching platform for underserved regions. Designed for Cloud Phone.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5