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

网址 :https://goodfriends.social

源代码 :https://gitlab.com/redstoneleo/goodfriends

作品功能 :帮助用户通过兴趣标签筛选距离由近到远的有共同兴趣爱好的朋友。

目标用户 :年轻人为主。

应用场景 :想找到有共同兴趣爱好的朋友、想找搭子一起出去玩、想约coffee chat互相聊聊天、想拓宽朋友圈、想找对象、甚至是想招人,同好网都可以帮到你!

主要亮点 :同好网是一个纯粹的基于兴趣爱好的社交网站,帮助你通过兴趣爱好搜索到距你由近到远的有共同兴趣爱好的朋友,就这么一个简单的功能就可以满足诸多应用场景,可谓是功能简单但用途绝不简单!

GoodFriends Django-2025-12-22-071646

功能特性

核心功能

  • 多种登录方式:邮箱、微信、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 文件了解详情

我的软件