【EE308FZ Team EmoGenius Crew Assignment 6】

EE308FZ Team EmoGenius Crew Assignment 6:
Extreme Programming-- Back-end separation calculator programming with login module

The Link Your Class 2301-MUSE Community
The Link of Requirement of This Assignment Back-end separation calculator programming with login module
Team name EmoGenius Crew
The goal of this assignment Extreme programming in limited time
Other references No reference

Links of documents

Repository Address in Github EmoGenius Crew’s Extreme Programming
Access Address to Server EmoGenius Assignment 4 Report PPT

Ⅰ. Team Labor Division of Assignment 6 (Extreme Programming)

This table demonstrates the Team Division of Labor of Assignment 5(Not the overall project, just Assignment 5).

Student ID Work distribution Contribution
Wang Yifan UI Graphics deployment, Front-end development, Front and Back end communication docking, Blog essay, Project Management 35%
Wu Guohua Back-end development, Front and Back end communication docking 25%
Shi TianJun Front-end development, Front and Back end communication docking 14%
Lu Yuhao Back-end development 10%
Zhang Xindan UI Graphics Deployment & Design 3%
Fan Jinzheng Front-end development 3%
Zheng Haoyuan UI Graphics Design 2%
Zheng Binyue UI Graphics Design 2%
Wang Yanbo UI Graphics Design 2%
Wang zhaoyou UI Graphics Design 2%
Li Guandong Front-end development 2%

Ⅱ. Organization method in Assignment 6 (Extreme Programming)

For this Extreme Programming (XP) session, our team is divided into three main groups: UI Design Team, Frontend Programming Team, and Backend Team.
After a thorough understanding of the task requirements, the project leader, leveraging existing resources, conducted preliminary ideation and code writing for the project. Tasks were cleverly assigned to team members, allowing each member to focus on their respective expertise.
Once the basic framework, activity classes, and main components of the Android app were determined, the project leader provided detailed instructions for UI prototype design. Additionally, the leader defined the methods and content for communication between the frontend and backend, setting clear deadlines. This process helps ensure a consistent understanding of the project goals across the entire team and provides clear direction for each group’s work.
During the task allocation phase of the project, the team has made significant progress, laying a solid foundation for subsequent work.
Team Division

Division of Labor in Ditails:

Yifan Wang: UI Graphics deployment, Front-end development, Front and Back end communication docking, Blog essay, Project Management (35%)
Guohua Li: Back-end development, Front and Back end communication docking (25%)
Tianjun Shi: Front-end development, Front and Back end communication docking (18%)
Yuhao Lu: Back-end development (7%)
Xindan Zhang: UI Graphics Deployment & Design(5%)
Jingzhen Fan: Front-end development(3%)
Haoyuan Zheng: UI Graphics Design (2%)
Yanbo Wang: UI Graphics Design (2%)
Binyue Zheng: UI Graphics Design (2%)
Zhaoyou Wang: UI Graphics Design (2%)
Guandong Li: Front-end development (2%)

Team organization method

  1. Regularly assess team performance: Evaluate team performance periodically, identify problems, and take timely measures for improvement. Regular performance assessments help the team identify issues and make adjustments and improvements promptly
  2. Team meetings: In order to better coordinate the work among all members, we will hold a meeting every day, in which we will explain their progress and give the next schedule.
  3. Communication: Our group communicates and collaborates through offline communication and online voice communication. All members are serious and responsible for their work and can complete the task in a short time.
  4. Feedback: We will give feedback and improvement regularly, each member will put forward their own views on the work, and finally we will jointly decide on a best improvement plan.
  5. Mutual Support and Encouragement: We place a high value on mutual support and encouragement among team members. When a team member encounters challenges, we make every effort to assist and motivate them.

Ⅲ. Description of functional implementation ideas

This project adopts a front-end and back-end separation approach for Android development. The front-end primarily utilizes Android Studio for activity navigation, user interaction, data processing and communication, as well as implementing business logic. On the other hand, the back-end is responsible for data storage and interaction with the database. The front-end and back-end were collaboratively developed by two teams comprising four students, actively coordinating data integration, and ultimately achieving successful implementation. In this section, we describe the functional implementation ideas for the frontend and backend separately.

Front-end functional implementation ideas

The project can achieve the following functionalities:

  1. User Authentication and Registration: Ensure secure user authentication and data safety through login and registration processes.
  2. Scientific Calculator: Support various scientific calculations and allow users to query their calculation history.
  3. Interest Calculation: Assist users in understanding the interest rates and returns on their deposits, supporting queries and modifications of interest rate records.
  4. Personal Information: Record user account information such as username and nickname, allowing users to modify their details.
    FlowChart
    This class diagram shows the transition of the various active classes in the frontend.
    Upon running the project, the Logo interface (Logo Activity) is displayed first. Afterward, the user enters the login interface (Login Activity), where they can input their account credentials or proceed to register. During login, the user’s entered information is transmitted to the server using the HTTP protocol to verify the account’s existence and the correctness of the password. In case of registration, the server stores the user-entered information for future logins. Upon successful login, the user enters the main interface (Home Activity), where they can choose their desired operations.
    The Home Activity class interacts with the Scientific Calculator Activity class, which handles scientific calculations. It also interacts with the Scientific Calculator History Activity class, responsible for displaying the user’s calculation history.
    Home Activity communicates with the Interest Rate Calculator Activity class, which calculates interest rates/interest and supports user modifications. It also displays the user’s history of queries and modifications.
    Finally, Home Activity interacts with the Personal Info Activity class, responsible for recording user account information. Users can modify their information within this interface.

Logo

logo
LogoActivity is the launch activity (LogoActivity) in an Android application. Its primary function is to display a logo page with the application’s logo when the app is launched. After a 5-second delay, it automatically transitions to another activity (MainActivity). To prevent users from seeing the Logo page again when pressing the back key, the finish() method is called.

Register

registerClass

RegisterActivity

RegisterActivity implements the logic for the registration page. When the user clicks the registration button, it retrieves the entered username, password, and email information. It then uses the RegisterAsyncTask asynchronous task to send a registration request to the server. During registration, it checks if the entered passwords match and displays a corresponding prompt if they don’t. After sending the registration request, the registration result is handled through a callback mechanism. If registration is successful, it navigates to the main page (MainActivity); otherwise, it displays a registration failure message.

RegisterAsyncTask

RegisterAsyncTask uses the RegisterHTTPUtil class’s sendPost method to send a registration request to the server. The onPostExecute method handles the result of the request. When processing the result, it parses the returned JSON data, determines the success of the registration, and notifies the caller through a callback interface (OnRegisterResultListener). If registration is successful, the onRegisterResult method in the callback passes true; otherwise, it passes false.

RegisterHTTPUtil

This code is a utility class (RegisterHTTPUtil) for sending user registration requests to the server. It uses the HTTP POST method to encapsulate the provided username and password in JSON format. It then sends this data via a URL connection to the designated registration server for storing user account and password information.

Login

loginClass

MainActivity

This is the implementation of the main activity (MainActivity) in an Android application. Its main functionalities include user login, remembering account credentials, and facial recognition for photo uploads. In the user login section, it retrieves the username and password, utilizes the LoginAsyncTask for an HTTP request. If the request returns true, it navigates to the HomeActivity; if false, a “Login failed” message dialog is displayed, indicating incorrect password input or the non-existence of the user. This achieves user login functionality. Additionally, it provides the feature to remember account credentials by saving user input data using SharedPreferences, enabling automatic filling on the next app opening.

LoginAsyncTask

To prevent user interface lag and provide a smoother experience, as well as to avoid executing time-consuming tasks on the main thread, an asynchronous thread is used to handle user login. The doInBackground method executes network operations. It uses the LoginHTTPUtil class to send a POST request for user login validation. After the login request’s result is returned, it parses the JSON-formatted response data to determine the success of the login. If successful, it notifies the caller through a callback interface, extracts user information, and saves it to SharedPreferences, including username, age, gender, and a personalized signature.

LoginHTTPUtil

This is an HTTP utility class (LoginHTTPUtil) for handling user login. Its main function is to send a POST request to a specified URL, transmitting the provided username and password information. Before sending the request, it constructs JSON-formatted data containing the username and password using JSONObject and sends it as the request body. It establishes a connection using HttpU

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值