Extreme Programming--MuYu(Fifth assignment)

MuYu2033 团队账号 2023-11-19 21:37:57

 

 Course for This Assignmenthttps://bbs.csdn.net/forums/ssynkqtd-04
Team NameMUYU
Assignment Requirementshttps://bbs.csdn.net/topics/617593156
Objectives of This AssignmentInterest rate calculation on the basis of scientific calculator
Other ReferencesNO reference

CATALOGUE

1. Project address

2. Github's submission log

3. Functional implementation ideas

Sign Up Page

Log In Page

Scientific Calculator Page

Interest Rate Calculator Page

4. Program demonstration 

Registration and login module

Scientific Calculator functions

Calculate deposit and loan interest

Modify deposit and loan interest on the front-end

5. Division of labor among team members

6. Evaluate the contribution ratio

7. Difficulties encountered in cooperation and solutions attached PSP form

8. Project Implementation Summary

Technical Aspect

Team Collaboration

Task Summary


1. Project address

warehouse area:https://github.com/Kev1nForever/MuYu/tree/main/ExtremeCoding/Version_3.0

 

2. Github's submission log

 

3. Functional implementation ideas

Sign Up Page

  • Frontend (Sign_up.js)

(1) User Input: Collect user account and password input from the registration form.

(2) Sent to Backend: After clicking the "Sign Up" button, send a request to the backend API containing user account and password data.

  • Backend (API/Server)

(1) Receive Data: Accept incoming data on the server.

(2) Database Interaction: Add user information (account and password) to the 'user' table in the database.

 

Log In Page

  • Frontend (Log_in.js)

(1) User Input: Obtain user account and password from the login form.

(2) Sent to Backend: Send a request to the backend API using the user's login credentials.

  • Backend (API/Serve)

(1) Receive Data: Receive login credentials on the server.

(2) Database Query: Check if the entered username and password match any records in the database.

(3)Authentication: If the credentials are valid, create a session for the user to maintain their login status.

 

Scientific Calculator Page

  • Frontend

(1) Login Check: Before displaying the scientific calculator page, ensure the user is logged in. If not logged in, redirect to the login page. On the login page, after entering the account and password, send a request to the database to match the entered credentials. If incorrect, return "failure." On the registration page, the entered account and password will be sent to the database for storage to ensure successful login.

(2) UI Switch: After successful login, switch the user interface to the scientific calculator page.

(3) Scientific Calculator Features: Implement the functionality of the scientific calculator using HTML, CSS, and JavaScript.

(4) History Records: Retrieve recent calculation history.

 

Interest Rate Calculator Page

  • Frontend

(1) Navigation: Provide a method for navigating between the scientific calculator and interest rate calculator pages.

(2) UI Switch: Allow users to switch between the scientific calculator and interest rate calculator pages.

(3) Logic Handling: Implement logic for switching between the functionalities of the scientific calculator and interest rate calculator.

  • Backend (API/Server)

(1) Use the Flask framework in Python to write backend route handling for the web application.

(2) Functionality Implementation:

- Handling GET Requests: This route handling function only responds to HTTP GET requests.

- Database Query: Retrieve all user information from the table named "users" using the database query statement cursor.execute("SELECT * FROM users").

- Exception Handling: Capture potential exceptions, such as database query failure, within a try-except block. If an exception occurs, return the error message in JSON format, using an HTTP status code of 500 to indicate a server error.

- Return JSON Data: Return the results of the database query to the frontend in JSON format using jsonify({"data": users}). This allows the frontend to parse the JSON data and obtain user information.

 

4. Program demonstration 

Registration and login module

 

Scientific Calculator functions

 

Calculate deposit and loan interest

 

Modify deposit and loan interest on the front-end

 

5. Division of labor among team members

(1) 林泽煌 (Frontend Framework Setup):

Responsible for selecting and setting up the frontend framework, ensuring the project has a well-organized frontend architecture.

(2) 傅安 (Backend Framework and Algorithms):

In charge of selecting and establishing the backend framework, implementing backend algorithmic logic, ensuring system stability, and efficiency.

(3) 化少巍 (Frontend and Backend Testing and Optimization):

Responsible for formulating frontend and backend testing strategies, executing tests, and providing optimization suggestions to ensure system quality and performance.

(4) 郑培炎, 林崇正, 徐抒杰 (Backend Testing Optimization and Database Debugging):

Collaborating on backend testing, optimizing backend code, and debugging the database to ensure system stability and data consistency.

(5) 魏灵菲, 邱淳彦, 陈怡萱 (Frontend Optimization - Login Interface):

Tasked with optimizing the user experience of the login interface, including interface design, interaction logic, and performance optimization.

(6) 王文瑞, 吕辉煌, 郑宇翔 (Frontend Optimization - Calculator Interface):

Responsible for optimizing the scientific calculator interface to ensure a user-friendly calculator experience, including interface design, interaction logic, and performance optimization.

(7) 林佳柽, 吴新宇, 陈奕晖 (Frontend Optimization - Interest Rate Interface):

Responsible for optimizing the interest rate calculator interface, ensuring users can easily perform interest rate calculations, including interface design, interaction logic, and performance optimization.

 

6. Evaluate the contribution ratio

Student IDWork DescriptionContribution
832101114 林泽煌Front-end frame construction12%
832101129 傅安Back-end frameworks and algorithms18%
832101102 化少巍Front-end and back-end testing and optimization12%
832101119 郑培炎Back-end test optimization and database debugging3.167%
832101115 林崇正Back-end test optimization and database debugging3.167%
832101122 徐抒杰Back-end test optimization and database debugging3.167%
832101107 邱淳彦Front-end optimization-login interface and blog writing9%
832101130 魏灵菲Front-end optimization-login interface4.5%
832101110 陈怡萱Front-end optimization-login interface4.5%
832101103 吕辉煌Front-end optimization-Computer interface12%
832101101 王文锐Front-end optimization-Computer interface4.5%
832101118 郑宇翔Front-end optimization-Computer interface4.5%
832101113 林佳柽Front-end optimization-Interest rate interface3.167%
832101106 吴新宇Front-end optimization-Interest rate interface3.167%
832101111 陈奕晖Front-end optimization-Interest rate interface3.167%

 

7. Difficulties encountered in cooperation and solutions attached PSP form

  • 林泽煌 (Frontend Framework Setup)

    Challenge 1: Front-end and Back-end Collaborative Development — The development progress of the front-end and back-end is not synchronized, leading to integration issues.
    Solution: Conduct regular integration testing to ensure consistent coordination of interfaces between the front-end and back-end.

    Challenge 2: Front-end and Back-end Collaboration — Unable to ensure smooth collaboration between the front-end and back-end.
    Solutions:
    (1) Define clear API interfaces to ensure consistency in data formats and communication protocols between the front-end and back-end.
    (2) Use version control systems (such as Git) to coordinate front-end and back-end development work.
    (3) Hold regular communication and coordination meetings to ensure the overall progress of the project.

Personal Software Process StagesEstimated Time(minutes)Actual Time(minutes)
Planning2025
Estimate2025
Development205230
Analysis1520
Design Spec1010
Design Review1010
Coding Standard1010
Design3030
Coding8090
Code Review2020
Test3040
Reporting3540
Test Repor1010
Size Measurement1015
Postmortem & Process Improvement Plan1515
Sum260295

 

  • 傅安 (Backend Framework and Algorithms)

    Challenge 1: Data Format Consistency — There may be inconsistencies in the data format exchanged between the front-end and back-end.
    Solutions:
    (1) Use a standardized data interchange format, such as JSON, to reduce the possibility of data format issues.
    (2) Establish clear data conventions between the front-end and back-end to ensure data consistency and correctness.

    Challenge 2: Communication Issues — Communication between front-end and back-end team members is not smooth.
    Solutions:
    (1) Facilitate offline communication to promptly address issues.
    (2) Appoint Hua Shaowei to coordinate work between the front-end and back-end teams.

Personal Software Process StagesEstimated Time(minutes)Actual Time(minutes)
Planning2025
Estimate2025
Development205235
Analysis1520
Design Spec1010
Design Review1010
Coding Standard1010
Design3030
Coding80100
Code Review2025
Test3030
Reporting3530
Test Repor1010
Size Measurement1010
Postmortem & Process Improvement Plan1510
Sum260290

 

  • 化少巍 (Frontend and Backend Testing and Optimization)

    Challenge 1: Compatibility Issues — Due to differences in various browsers, there are display problems with the front-end pages on different browsers.
    Solutions:
    (1) Use CSS hacks for compatibility testing.
    (2) Utilize other tools for individual testing to address compatibility issues.

    Challenge 2: Version Control Issues — At the early stages of a task, front-end and back-end team members release multiple versions in a single day, resulting in excessively frequent versions and adding a burden to the testing process.
    Solution: Reduce the frequency of version releases. The front-end and back-end teams should finalize and release versions only after thorough testing and optimization, documenting the tested features on each version.

Personal Software Process StagesEstimated Time(minutes)Actual Time(minutes)
Planning2020
Estimate2020
Development175215
Analysis1020
Design Spec510
Design Review510
Coding Standard55
Design3040
Coding1010
Code Review5060
Test6060
Reporting3530
Test Repor1010
Size Measurement1010
Postmortem & Process Improvement Plan1510
Sum230265

 

  • 郑培炎, 林崇正, 徐抒杰 (Backend Testing Optimization and Database Debugging)

    Challenge 1: Data Consistency Issues — During back-end testing, data loss and data errors were encountered in the database debugging process.
    Solutions:
    (1) Implement transaction control for database operations and use database backup and restore tools for data recovery.
    (2) Write well-structured database operation statements to ensure data consistency.

    Challenge 2: Database Connection Issues — Database connection problems in back-end testing are preventing normal test execution.
    Solutions:
    (1) Check the configuration of the database connection string to ensure correctness and verify that the database service is running properly.
    (2) Use a database connection pool for connection management to avoid issues related to too many or too few connections.

    Challenge 3: Slow SQL Issues — While debugging with the MySQL database, there were instances of slow SQL affecting database query performance.
    Solutions:
    (1) Use analysis and diagnostic tools (such as `mysql explain`) to analyze and optimize SQL queries, improving query efficiency and preventing slow SQL issues.
    (2) Pay attention to index-related rules when writing SQL queries to avoid common issues caused by SQL writing, and check SQL statements before the debugging process to prevent problems.

Personal Software Process StagesEstimated Time(minutes)Actual Time(minutes)
Planning2020
Estimate2020
Development105130
Analysis1010
Design Spec55
Design Review55
Coding Standard55
Design2030
Coding1010
Code Review2030
Test3035
Reporting3530
Test Repor1010
Size Measurement1010
Postmortem & Process Improvement Plan1510
Sum160180

 

  • 魏灵菲, 邱淳彦, 陈怡萱 (Frontend Optimization - Login Interface)

    Challenge 1: Cleanliness of the Interface — Ensuring the login page is both secure and user-friendly with appropriate identity verification, avoiding excessive steps and complexity.
    Solution: Reference the login interface of a second-hand trading platform on an instant messaging app that we have used before, maintaining a clean and simple page.

    Challenge 2: Communication Issues — During remote design processes, there are communication barriers, increasing collaboration difficulties.
    Solution: Use video conferencing communication tools to ensure timely and effective message communication.

  • 王文瑞, 吕辉煌, 郑宇翔 (Frontend Optimization - Calculator Interface)

    Challenge 1: Consistency in Interface — Ensuring the cleanliness of the page and consistency with the login interface style to maintain a clear overall framework.
    Solution: Adhere to the principles of simple design, make optimal use of white space, and maintain a unified design style.

    Challenge 2: Requirement Changes — Changing requirements leading to frequent format adjustments.
    Solution: Communicate information in a timely manner to ensure synchronization of information.

  • 林佳柽, 吴新宇, 陈奕晖 (Frontend Optimization - Interest Rate Interface)

    Challenge 1: Diversity in Interface — Involving numerous elements related to interest rates, ensuring that the page can accommodate various interest rate calculations.
    Solution: Consider different types of interest rate calculations, provide flexible input fields to accommodate various types of interest rates, terms, and other relevant parameters.

    Challenge 2: Time Uniformity — Each team member has different schedules, making it challenging to collaborate at the same time.
    Solution: Plan the project schedule in advance, establish clear work plans, and share them within the team.

Personal Software Process StagesEstimated Time(minutes)Actual Time(minutes)
Planning2020
Estimate2020
Development105135
Analysis1010
Design Spec1015
Design Review1015
Coding Standard55
Design2020
Coding3050
Code Review1010
Test1010
Reporting3535
Test Repor1010
Size Measurement1010
Postmortem & Process Improvement Plan1515
Sum160190

 

8. Project Implementation Summary

Technical Aspect

In this project, we employed advanced technical tools and methodologies. On the frontend, we utilized modern JavaScript libraries, such as React, to build the user interface, ensuring a smooth user experience. On the backend, we employed Python's Flask framework to develop the API, facilitating data interaction between the frontend and backend. The use of version control systems, such as Git, effectively coordinated the development efforts between frontend and backend, ensuring code consistency and maintainability.

Team Collaboration

Throughout the project, the team collaborated closely, following agile development practices. Regular coordination meetings and offline communication ensured effective communication among team members. Clear API interface definitions and data conventions were established, ensuring smooth collaboration between frontend and backend. Through collective efforts, the team overcame synchronization issues that might arise in frontend and backend collaborative development.

Task Summary

The implementation approach outlined for the project successfully realized functionalities such as registration, login, scientific calculator, and interest rate calculator. By adopting a unified data exchange format (JSON) and version control system management, data consistency and code traceability were ensured. The team demonstrated excellence in addressing challenges related to data format consistency, communication issues, interface compatibility, contributing significantly to the smooth completion of the project.

 

...全文
55 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

172

社区成员

发帖
与我相关
我的任务
社区描述
梅努斯软件工程
软件工程 高校 福建省·福州市
社区管理员
  • LinQF39
  • Jcandc
  • 助教-陈锦辉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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