Software Engineering major operations (association management system) - Personal Summary Report

Association Management System

Related Documents

Needs analysis
design
Prototype Reports
Meeting Minutes

Source

yonginggg/StudentClubManagementSoftware

the whole idea

The project team, we use the spring-boot + vue separating the front and rear ends of the frame.

  • Distal: HTML, CSS, JavaScript (VUE binding element and the frame component library)
  • Backend: spring-boot

Participation

1, the preparation of construction of the table statement

After the initial project, we are determined to meet the basic needs of a panel discussion of the project, which I prepared to build a database table statement.

2, FIG drawing ER

I was drawn by the ER diagram of the project.

3, the rear end of the frame structures

Group finalized using spring + vue frame mode to achieve the project. After I learned tutorials (built spring-boot + front and rear end vue separation framework and implement the login function) the need to use is determined by changing the project pom.xml frame package, and use mybatis generator to generate a database mapping, in order to complete the basic framework to build the project.

4, writing tool interface

  • I wrote a tool interface MybatiesSession, convenient service layer calls in specific sql statement mapper to perform database operations.
public class MybatiesSession {
    public static SqlSession getSession() {
        String resources = "mybatis.cfg.xml";
        Reader reader = null;
        SqlSession session = null;
        try {
            reader = Resources.getResourceAsReader(resources);
            SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
            session = sqlMapper.openSession();

        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
        return session;
    }
}
  • Write tool interface JsonUtil, Json to return data type format (port number + Model classes / error information) to the front end.
public class JsonUtil {

    static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    public static JSONObject errorResult(int port, String ErrorResult){
        JSONObject jsonObject = new JSONObject(true);
        jsonObject.put("port",port);
        jsonObject.put("ErrorResult",ErrorResult);
        return jsonObject;
    }
    public static JSONObject ActivitySignResult(int port, BeanActivitySign activitySign){
        JSONObject jsonObject = new JSONObject(true);
        jsonObject.put("port",port);
        jsonObject.put("activitysignid",activitySign.getActivitysignid());
        jsonObject.put("studentsigntime",df.format(activitySign.getStudentsigntime()));
        jsonObject.put("activitysignstate",activitySign.getActivitysignstate());
        jsonObject.put("userid",activitySign.getUserid());
        jsonObject.put("activityid",activitySign.getActivityid());
        return jsonObject;
    }
}

5, Controller annotations within the composite layer test

In the first group, I have assigned the module is active Activity, but because you need to log in before and after the connection to interact with the end user to verify the registration, I put together the user User module to complete. After due to lack of experience, both before and after the process to achieve this end in interactive, step on a lot of pits, big brother to ask several times, I tried a lot of combinations before deciding @RestController @CrossOrigin @ResponseBody three notes in the Controller layer combination of feasibility .

6, the rear end of the preparation

在用户的注册登陆测试跑通后,我将工程push到GitHub上作为小组后端的基础模型。并在此基础上完成了以下模块的后端编写。

  • 用户User
  • 活动Activity
  • 活动报名ActivitySign
  • 场地Place
  • 主题贴SubjectPost

7、参与前端

由于没有前端网页的相关知识基础,我一开始没有分到前端的编写任务。随着进度的推进,我主动参与前端界面的设计,但出现前端任务繁重和人手不足的问题,我编写了一个相对简单的“修改密码”的界面与前后端连接,也与我自己编写的User模块测试成功。

项目总结

数据库严谨性

  • 在之后的过程中发现了不少一开始没有考虑周到的地方,导致每个人后端成员都需要对数据库进行一些必要的修修补补。以后要吸取这次的教训,在一开始编写数据库的时候,就要考虑周到,并且适当的添加“备注”属性,用于方便数据库的修改。

    统筹规划

  • 在项目初期,由于进度不一时常会出现需要等待其他组员的情况,我认识到了统筹规划的重要性。也要给每个组员分配时间限制进行督促,以此保证整体进度的推进。

    及时调整

  • 由于缺乏经验,对各个模块的工作量判断有误,最后导致了前端人手不足、后端测试需要等待前端的界面完成的窘境。我认为,在以后的团队任务中,要先进行具体完整的规划,合理分配工作量,并且要在出现问题后,及时重新划分职责、分配工作。

    利用好Github

  • 在一开始,我们代码的上传使用Github,但是到后来,由于大家都要对公共部分进行修改,又或者是我们的使用方法不得当,导致后续无法上传和版本的混乱。我们后来都把各自的代码单独发给组长进行整合,这一次次的整合过程中,伴随着许多原本自己电脑没见过的无法预料的错误。我觉得,这种方法大大降低了我们项目后来的效率,我们应该好好研究一下Github的团队使用,而不是把它当一个简单的云盘,以此将他的作用最大化,提高效率。

    规范命名

  • 命名规范的重要性。本次的项目采用的是前后端分离的模式,在前后端连接的部分难免要去读组员的代码,这时候命名的规范就很重要了,有助于解读代码和后续代码方便编写。

    合作精神

  • 一个团队项目的推进,合作精神显得至关重要。每一个组员在进行个人模块的时候,遇到问题应该及时反馈,而不是憋着不说影响整体进度。大家都应具备团队精神,及时负责的完成个人任务,在后期测试遇到问题,也应该及时处理BUG,给出相应解决方案,而不是“明天再说”。

课程建议

  • 朱老师的课堂风格幽默风趣,同时灵活运用现实生活中的例子来让我们加深印象。我觉得也要注重课本知识,适当的划一下重点,不然期末考还是挺慌。
  • 另外,我个人觉得第一次的个人作业花费了太多的周期和时间。我觉得只要做一下需求分析,以及测试样例的思考就差不多了,具体的代码可以不用实现了。

Guess you like

Origin www.cnblogs.com/Zssss/p/12015168.html