Extreme Programming

832201325 黄博晖 2024-11-23 21:55:54

Catalogue

🌟 Bestie CONTACT Project Documentation 🌟

Assignment Description 📝

GitHub Submit Log

1. Project Overview 📋

2. Technology Stack 🛠️

3. Project Address 🔗

4. Function Implementation Ideas 💡

4.1 User Management 👤

4.2 Contact Management 📇

4.3 Admin Functionality 🛡️

4.4 AOP Logging 📝

4.5 Global Exception Handling 🚨

4.6 Token Interceptor 🔐

4.7 Frontend Permission Control 🔒

5. Function Screenshots And GIF 📸

5.1 Login Page 🖥️

5.2 Bookmark contacts ⭐

5.3 Add multiple contact methods ➕

5.4 Import and Export📤

5.5 Other Screenshots 📤

6. Team Roles 👥

7. PSP Table

7.1 Personal Software Process Stages (Huang Bohui )

7.2 Personal Software Process Stages (Su Jingxuan )

8. Project Summary 🚀


🌟 Bestie CONTACT Project Documentation 🌟

Assignment Description 📝

Project DescriptionContent
Course Name2401_MU_SE_EE308
Team NameYYDS
Project RequirementCreate an address book with different user contacts
Project GoalImprove teamwork skills and learn coding knowledge
Other ReferencesNone
Student Number832201325HuangBohui ;832201306SuJingxuan

GitHub Submit Log

 

1. Project Overview 📋

Bestie CONTACT is a personal contact management system developed using the SSM (Spring + Spring MVC + MyBatis) framework and Vue.js frontend framework. The project aims to help users efficiently manage personal contact information and provide a favorite feature to quickly access important contacts. The system is divided into two roles: admin and regular user. Admins can manage all users and contact information, while regular users can only manage their own contacts.

2. Technology Stack 🛠️

  • Backend: Spring + Spring MVC + MyBatis

  • Frontend: Vue.js + Element UI + Axios

  • Database: MySQL

  • Other: Hutool (for Excel operations), PageHelper (for pagination)

3. Project Address 🔗

4. Function Implementation Ideas 💡

4.1 User Management 👤

The user management module is responsible for user registration, login, and personal information modification. Users can create new accounts through the registration function and access the system through the login function. After logging in, users can modify their personal information such as passwords and email addresses.

4.2 Contact Management 📇

The contact management module provides a rich set of features, including adding, editing, and deleting contact information, batch deleting contacts, paging querying the contact list, and favoriting important contacts. Users can also export their contact list to an Excel file or import contact information in bulk by uploading an Excel file.

4.3 Admin Functionality 🛡️

The admin functionality module is primarily for system administrators, providing user management, role management, contact management, and viewing favorite contact lists. Admins can view, edit, and delete all users in the system, manage user roles and permissions, view and edit all users' contact information, and view all users' favorite contact lists.

4.4 AOP Logging 📝

The system implements logging functionality using AOP (Aspect-Oriented Programming). Detailed information for each request, including the request URL, request method, request parameters, request body, request IP address, request time, request headers, response body, and time taken, is recorded. Log information is output in JSON format for easy subsequent analysis and processing.

4.5 Global Exception Handling 🚨

The system designs a global exception handling mechanism to capture and handle various exception situations. Common exceptions include BaseException, UserNotFoundException, UnauthorizedException, and BusinessException. Exception information is logged and returned to the frontend with user-friendly error messages.

4.6 Token Interceptor 🔐

The system implements user authentication and authorization using JWT (JSON Web Token). Each request must carry a valid JWT token; otherwise, it will be intercepted and return an unauthorized error. The interceptor extracts the token from the request header, verifies its validity, and sets the user information in the request context for subsequent processing.

4.7 Frontend Permission Control 🔒

The frontend implements menu and function permission management through the permission control module. Menu items and functions are dynamically displayed and hidden based on the user's role. The permission control module defines the permission list for different roles, and the frontend dynamically generates menus and function buttons based on the current user's role.

5. Function Screenshots And GIF 📸

5.1 Login Page 🖥️

 

 

5.2 Bookmark contacts ⭐

 

 

 

5.3 Add multiple contact methods ➕

 

 

5.4 Import and Export📤

 

 

 

5.5 Other Screenshots 📤

6. Team Roles 👥

MemberResponsibilitiesWork PercentageChallenges and Solutions
Huang BohuiResponsible for backend development and database design, including Spring, MyBatis integration, API development, and MySQL table structure design and optimization.50%Challenge 1: Encountered issues with capturing request and response bodies in SystemLogAOP. Solution: Created a custom RepeatedlyReadRequestWrapper class to allow multiple reads of the request body, resolving the issue. Captured the response body using objectMapper.writeValueAsString(result) in the doAround method. Challenge 2: Found that some tables had too many fields, leading to degraded query performance. Solution: Split the table structure, moving less frequently used fields to separate tables and using foreign keys to link them, optimizing query performance.
Su JingxuanResponsible for frontend development and testing deployment, including Vue.js, Element UI integration, page design, and functional, performance testing, and online deployment.50%Challenge 1: Encountered component style conflicts when integrating Vue.js and Element UI, causing layout issues. Solution: Adjusted CSS style priorities and used Scoped CSS to limit the scope of styles, resolving the conflict. Challenge 2: Found it difficult to write test cases for certain complex interaction operations during the functional testing phase. Solution: Introduced Cypress as a frontend automation testing tool, wrote detailed test cases, and used mock data to simulate complex interaction scenarios, improving test coverage.

7. PSP Table

7.1 Personal Software Process Stages (Huang Bohui )

PSP StagesEstimated Time (hours)Actual Time (hours)
Planning11
Development44
• Backend Development22
• Database Design11
Test11.5
Deploy10.5
Sum1010

7.2 Personal Software Process Stages (Su Jingxuan )

PSP StagesEstimated Time (hours)Actual Time (hours)
Planning11
Development33
• Frontend Development22
Test11
Deploy11
Sum88

8. Project Summary 🚀

Bestie CONTACT project achieves efficient management of user contact information through a monolithic project architecture. The project not only provides a rich set of features but also focuses on user experience, ensuring that users can easily get started. Team members each played their part, working closely together to ensure the project was completed on time and to a high standard. We hope this project will bring convenience to users and will be continuously optimized and improved in future iterations.

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

170

社区成员

发帖
与我相关
我的任务
社区描述
2401_MU_SE_FZU
软件工程 高校
社区管理员
  • FZU_SE_TeacherL
  • 助教-吴可仪
  • 助教-孔志豪
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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