FocusFlow α Sprint Blog Series (Part 1) - Login and Personal Center Module Report

FOCUS_2025_SE 2025-12-13 22:16:13

目录

  • Project Overview
  • 1. Sprint Burndown Chart
  • 2. Function realization demonstration
  • 2.1 User Login Module
  • 2.2 Personal Center Module
  • 3. Code Check-in Records (GitHub Commits)
  • 4. Core code analysis
  • 4.1 Login Verification Logic (app.py)
  • 4.2 Personal Information Update Logic (app.py)
  • 5. Sprint Summary
  • Completed tasks:
  • Problems Encountered and Solutions:
  • Problems:
  • Solution:

Project Overview

Course2501_MU_SE_FZU
Assignment RequirementFifth Assignment - Alpha Sprint
Team NameFocus_2025
Goal of this assignmentClarify Code Standards, Sprint Tasks, and Plans for the team Alpha Sprint
Other referencesIEEE Std 830-1998, GB/T 8567-2006

Author: He Jiazhuo
Completion Date: December 13, 2025

1. Sprint Burndown Chart

img

2. Function realization demonstration

This sprint, I was mainly responsible for implementing the two core modules: user login and personal center. Below are screenshots showing the operation of the functions.

2.1 User Login Module

This module implements the identity verification process based on mobile phone number, password and dynamic verification code.

login interface

在这里插入图片描述

Login success/failure prompt:

在这里插入图片描述


在这里插入图片描述

2.2 Personal Center Module

This module offers users the core functions of information viewing and management, including personal information modification and account security settings.

·Personal Center Homepage:

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


Explanation: The page clearly displays the user's profile picture (generated dynamically from the initial letter of the name), basic information, educational background, this month's check-in data, and the check-in calendar for the past 30 days.

·Modify personal information:

在这里插入图片描述


在这里插入图片描述

Explanation: Clicking the "Edit" button will open a modal box, allowing users to modify information such as name, phone number, email, gender, birthday, school, educational level and grade. The username/login name (mobile phone number) is the key credential and cannot be directly modified here.

·Password modification functionInstruction:

在这里插入图片描述


在这里插入图片描述


Click the "Change Password" button to open the password modification panel. To ensure security, the new password must be verified against the current password, and it is also required that the new password be the same as the confirmed password.

3. Code Check-in Records (GitHub Commits)

Explanation: As the person in charge of the "Login and Personal Center" module, I completed the entire development of this module from the front-end interface to the back-end logic. The main code changes were concentrated in the following files, and these changes have been integrated into the main branch of the project.
Core backend logic (app.py): It implements core routing functions such as login(), profile(), update_profile(), and change_password().
Front-end page templates (templates/login.html, templates/profile.html): These templates have constructed the user interaction interface.
Database and Models (models.py, database.py): Supports the storage and validation of user data.
Due to the reasons of the development process and local environment configuration, the detailed commit hashes could not be listed one by one in this report. All the code contributions for this sprint can be viewed and traced through the Commits history page of the project repository.

4. Core code analysis

4.1 Login Verification Logic (app.py)

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        phone = request.form.get('phone')
        password = request.form.get('password')
        user_captcha = request.form.get('captcha')
        correct_answer = session.get('captcha_answer', '')
 
        # 1. 验证码校验
        if user_captcha != correct_answer:
            flash(‘Captcha answer WRONG!’)
            return render_template(‘login.html’, ...)
 
        conn = get_db_connection()
        user = conn.execute(‘SELECT * FROM users WHERE phone = ?’, (phone,)).fetchone()
 
        # 2. 用户存在性及密码校验 (使用flask_bcrypt)
        if user and bcrypt.check_password_hash(user[‘password’], password):
            session[‘user_id’] = user[‘id’]  # 设置会话
            flash(‘Login SUCCESS!’)
            return redirect(url_for(‘dashboard’))
        else:
            flash(‘User NOT FOUND or Password WRONG!’)
        conn.close()

4.2 Personal Information Update Logic (app.py)

# 示例代码摘录自 app.py 的 update_profile() 路由函数
@app.route(‘/update_profile‘, methods=[’POST‘])
@login_required
def update_profile():
    user_id = session[’user_id‘]
    # 从表单安全获取数据
    first_name = request.form.get(’first_name‘)
    last_name = request.form.get(’last_name‘)
    email = request.form.get(’email‘)
    # ... 获取其他字段
 
    conn = get_db_connection()
    # 执行数据库更新
    conn.execute(’’‘
        UPDATE users
        SET first_name=?, last_name=?, email=?, ...
        WHERE id=?
    ’’’, (first_name, last_name, email, ..., user_id))
    conn.commit()
    conn.close()
    flash(‘Profile updated successfully!’)
    return redirect(url_for(’profile‘))

5. Sprint Summary

Completed tasks:

Login module: Completed the entire login process both on the front end and the back end, including forms with verification codes, secure password verification (using Bcrypt hashing), session management, and friendly prompts. Personal Center Module: It has realized a complete set of functions including displaying personal homepage information, visualizing the sign-in calendar, editing personal information, and modifying the password (requiring verification of the original password). Issue Resolution: The problem of ModuleNotFoundError that occurred during project startup due to the absence of the utils.helpers module has been resolved. A temporary solution was implemented to ensure the project's operability, facilitating team testing.

Problems Encountered and Solutions:

Problems:

  1. During the initial startup, the errors "ModuleNotFoundError: No module named 'flask_bcrypt'" and "ModuleNotFoundError: No module named 'utils.helpers'" occurred.

Solution:

  1. Install the missing dependency package by using the command "pip install flask-bcrypt bcrypt".
  2. Upon inspection, it was found that the project code was incomplete, lacking the utils/helpers.py file. To avoid disrupting the development process, the relevant import lines were temporarily commented out in app.py, and the avatar generation logic was hardcoded to ensure that the core functions (login, personal center) could be demonstrated and tested. This issue has been reported to the team and will be supplemented with the complete file in the future.
...全文
211 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文围绕“考虑多类型资源的数据中心园区供电协调规划”展开研究,重点探讨了源-荷-储多元协同下的供电规划与运行一体化优化问题。研究融合可再生能源、算力负载及时空调度等因素,提出基于多元宇宙优化算法的求解方法,实现对数据中心园区容量配置与日调度的协同优化。通过构建多场景概率模型与柔性变电站型园区架构,兼顾供电可靠性与算力柔性,提升系统运行效率与能源利用率。该资源配套完整的Matlab代码实现,涵盖多元宇宙算法求解、场景生成与削减、优化调度建模等关键环节,适用于科研复现与工程仿真。; 适合人群:具备一定电力系统、优化算法基础,从事新能源、数据中心能源管理、智能调度等相关领域研究的研发人员及高校研究生。; 使用场景及目标:①应用于数据中心园区含高比例可再生能源的供电系统规划;②支撑科研工作中对多元宇宙优化算法、场景概率建模、源网荷储协同调度等技术的复现与改进;③服务于微电网、综合能源系统等领域的优化调度算法开发与仿真验证。; 阅读建议:建议结合文中提供的Matlab代码与完整资源包进行同步实践,重点关注多元宇宙优化算法的实现流程与调度模型的数学建模细节,宜在掌握基本优化理论基础上开展学习与拓展。

164

社区成员

发帖
与我相关
我的任务
社区描述
2501_MU_SE_FZU
软件工程 高校
社区管理员
  • FZU_SE_LQF
  • 助教_林日臻
  • 朱仕君
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧