同好网:基于兴趣标签和地理距离的社交平台

同好网 (GoodFriends)

一个基于兴趣标签并按距离排序的同城/跨城交友平台。
源代码:https://gitlab.com/redstoneleo/goodfriends

功能特性

核心功能

  • 🔐 多种登录方式:邮箱、微信、Google OAuth2
  • 📍 地理位置匹配:基于PostGIS的距离排序
  • 🏷️ 兴趣标签系统:使用django-taggit实现
  • 💌 联系方式交换:安全的联系方式分享机制
  • 🔍 智能搜索:多维度筛选和搜索
  • 📱 移动优先:响应式设计,完美适配移动设备

用户系统

  • 分步引导的资料填写流程
  • 资料审核机制
  • 用户状态管理(公开/隐藏/审核中等)
  • 浏览记录追踪

通知系统

  • 站内消息
  • 邮件通知
  • 微信公众号推送(可选)

安全机制

  • 每日联系方式交换限制
  • 举报系统
  • 风控机制

技术栈

后端

  • Django 4.2 - Web框架
  • PostgreSQL + PostGIS - 数据库和地理信息处理
  • django-allauth - 认证系统
  • django-taggit - 标签系统
  • Celery + Redis - 异步任务处理

前端

  • Bootstrap 5 - UI框架
  • Tagify.js - 标签输入组件
  • 百度地图API - 地理位置服务

快速开始

环境要求

  • Python 3.8+
  • PostgreSQL 12+ (with PostGIS extension)
  • Redis 6+

安装步骤

  1. 克隆项目
git clone <repository-url>
cd goodfriends
  1. 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
  1. 安装依赖
pip install -r requirements.txt
  1. 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填入相应的配置信息
  1. 配置数据库
-- 在PostgreSQL中创建数据库和启用PostGIS扩展
CREATE DATABASE goodfriends;
\c goodfriends;
CREATE EXTENSION postgis;
  1. 运行迁移
python manage.py makemigrations
python manage.py migrate
  1. 创建超级用户
python manage.py createsuperuser
  1. 启动开发服务器
python manage.py runserver
  1. 启动Celery(另开终端)
celery -A goodfriends worker -l info
  1. 启动Redis
redis-server

项目结构

goodfriends/
├── goodfriends/          # 项目配置
├── accounts/             # 用户账户应用
├── profiles/             # 用户资料应用
├── notifications/        # 通知系统应用
├── reports/              # 举报系统应用
├── templates/            # 模板文件
├── static/               # 静态文件
├── media/                # 媒体文件
├── locale/               # 国际化文件
├── requirements.txt      # Python依赖
└── README.md

配置说明

必需配置

  • SECRET_KEY: Django密钥
  • DB_*: 数据库连接信息
  • REDIS_URL: Redis连接地址
  • EMAIL_*: 邮件服务配置
  • AMAP_API_KEY: 百度地图API密钥

可选配置

  • WECHAT_*: 微信公众号配置
  • GOOGLE_OAUTH2_*: Google OAuth2配置

部署

生产环境配置

  1. 设置 DEBUG=False
  2. 配置 ALLOWED_HOSTS
  3. 使用生产级数据库
  4. 配置静态文件服务
  5. 设置HTTPS
  6. 配置日志记录

Docker部署

# 构建镜像
docker build -t goodfriends .

# 运行容器
docker-compose up -d

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

posted @ 2025-12-19 16:55  iMath  阅读(0)  评论(0)    收藏  举报
关于我和本博客(iMath.cnblogs.com)