Geen omschrijving

0225015 f8823699eb Initial commit of tongquU project (backend and static files) 1 maand geleden
tongqu_backend_v2 f8823699eb Initial commit of tongquU project (backend and static files) 1 maand geleden
.gitignore f8823699eb Initial commit of tongquU project (backend and static files) 1 maand geleden
README.md f8823699eb Initial commit of tongquU project (backend and static files) 1 maand geleden
同趣U.html f8823699eb Initial commit of tongquU project (backend and static files) 1 maand geleden

README.md

同趣U (InterestU) - 大学生兴趣社交平台 [Backend]

同趣U (InterestU) 是一款专为在校大学生设计的移动社交应用,旨在帮助他们基于共同的兴趣爱好轻松发现伙伴、组织活动、拓展社交圈,让大学生活更加丰富多彩。本项目是“同趣U”应用的后端服务部分。

项目背景

在当前的大学校园中,学生们拥有多元的兴趣和强烈的社交需求,但常常面临以下痛点:

  • 信息不对称: 难以高效找到与自己有相同小众或特定兴趣的伙伴。
  • 平台错位: 现有通用社交平台难以满足纯粹基于兴趣的连接需求。
  • 连接障碍: 主动发起线下或线上连接存在一定的社交压力。
  • 活动分散: 校园内外的兴趣活动信息零散,不易发现和组织。

“同趣U”后端服务旨在解决这些问题,为前端App提供稳定、高效、安全的接口支持。

核心目标 (后端)

  • 用户管理: 提供安全可靠的用户注册、登录、资料管理等功能。
  • 兴趣匹配: 支持基于兴趣标签的数据存储与检索,为前端实现精准匹配提供基础。
  • 互动支持: 为私信、小组、活动等社交场景提供API接口。
  • 数据持久化: 使用PostgreSQL数据库安全存储用户信息、兴趣数据、社交关系等。
  • API接口: 提供清晰、规范的RESTful API供前端App调用。

主要功能 (当前进度及规划)

已实现/进行中 (示例,请根据你的实际进度修改)

  • 用户系统 (v0.1):
    • 基于Django自定义User模型,包含手机号、头像、简介、学校等字段。
    • 使用Django REST framework 和 djangorestframework-simplejwt 实现用户注册、登录(JWT认证)、获取用户信息的API接口。
    • 配置PostgreSQL数据库连接。

规划中

  • 兴趣标签系统:
    • 用户兴趣标签的创建、选择、展示。
    • 基于兴趣标签的推荐算法初步设计。
  • 匹配与发现:
    • 实现基于共同兴趣的用户推荐API。
  • 即时通讯 (私信):
    • WebSocket基础搭建或选择第三方服务。
    • 私信消息存储与API接口。
  • 兴趣圈子/小组:
    • 小组创建、加入、管理API。
    • 小组内动态发布与查看API。
  • 活动发布与匹配:
    • 活动创建、报名、管理API。
  • 校园认证流程。
  • 更完善的错误处理、日志记录和单元测试。

技术栈

  • 后端框架: Python 3.x, Django, Django REST framework
  • 数据库: PostgreSQL
  • 认证: JWT (JSON Web Tokens) via djangorestframework-simplejwt
  • Web服务器 (部署时): Gunicorn (或 uWSGI)
  • 反向代理 (部署时): Nginx
  • 版本控制: Git

环境搭建与运行

前提条件

  • Python 3.8+
  • PostgreSQL 12+
  • Git

本地开发步骤

  1. 克隆仓库 (如果已推送到远程):

    git clone http://git.fmode.cn:3000/0225015/tongquU.git
    cd tongquU
    

    或者如果你是在本地新初始化的项目,直接进入项目目录。

  2. 创建并激活Python虚拟环境:

    python -m venv venv
    # Windows CMD:
    # venv\Scripts\activate
    # Windows PowerShell:
    # .\venv\Scripts\Activate.ps1
    # Linux/macOS:
    # source venv/bin/activate
    
  3. 安装依赖: (建议创建一个 requirements.txt 文件)

    pip install django djangorestframework djangorestframework-simplejwt psycopg2-binary
    # 如果有 requirements.txt:
    # pip install -r requirements.txt
    
  4. 配置数据库:

    • 确保PostgreSQL服务正在运行。
    • 在PostgreSQL中创建一个名为 tongquu_db (或其他你指定的名字) 的数据库。

      -- (在psql中)
      CREATE DATABASE tongquu_db;
      -- CREATE USER tongquu_user WITH PASSWORD 'your_password'; -- 可选
      -- GRANT ALL PRIVILEGES ON DATABASE tongquu_db TO tongquu_user; -- 可选
      
    • 修改项目中的 tongqu_project/settings.py 文件,配置 DATABASES 部分:

      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.postgresql',
              'NAME': 'tongquu_db',
              'USER': 'postgres', # 或者你创建的专用用户
              'PASSWORD': 'your_postgres_password', # 你的PostgreSQL密码
              'HOST': 'localhost',
              'PORT': '5432',
          }
      }
      
  5. 配置自定义用户模型 (如果尚未完成):

    • accounts/models.py 中定义 CustomUser
    • tongqu_project/settings.py 中设置 AUTH_USER_MODEL = 'accounts.CustomUser'
  6. 进行数据库迁移:

    python manage.py makemigrations accounts
    python manage.py migrate
    
  7. 创建超级用户 (用于访问Django Admin):

    python manage.py createsuperuser
    
  8. 运行开发服务器:

    python manage.py runserver
    

    服务将在 http://127.0.0.1:8000/ 启动。

API 端点 (示例)

  • 注册: POST /api/v1/accounts/register/
  • 登录 (获取Token): POST /api/v1/accounts/login/ (或 POST /api/v1/accounts/token/)
  • 刷新Token: POST /api/v1/accounts/token/refresh/
  • 获取/更新用户资料: GET/PUT /api/v1/accounts/profile/ (需认证)

(更多端点将随功能开发添加)

如何贡献 (示例)

我们欢迎各种形式的贡献!如果您对本项目感兴趣,可以通过以下方式参与:

  1. Fork 本仓库 (如果项目公开)
  2. 创建您的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交您的更改 (git commit -m 'Add some AmazingFeature')
  4. 将您的更改推送到分支 (git push origin feature/AmazingFeature)
  5. 开启一个 Pull Request

请确保您的代码遵循项目的编码规范,并添加必要的测试。

许可证

本项目采用 MIT许可证