用户
系统中有两种类型的用户用于访问控制:管理员和普通用户。
任何人都可以注册并成为系统中的常规用户。在注册期间,用户必须提供以下信息:
名字和姓氏职位:学生,教师或工作人员组织单位:这可以是大学,部门,部门,办公室(例如本科学习办公室),或未申报学生。用户名和密码电子邮件用户在注册期间提供的可选信息包括:
标题:例如,“LSAMP主任”或“ACM学生分会主席”计划附属机构,例如LSAMP,LSAMP-BD,MBRS-RISE,MARC-U * STAR,未来桥梁,ACS项目种子,NSF-CREST,FYrE @ ECST,BOOST,MEP,CAPS等。
活动
任何用户都可以提交要在Web门户上发布的事件。在发布事件之前,必须由管理员审查和批准事件,但如果用户被指定为事件管理器,则可以直接发布用户提交的事件。
事件具有名称,描述,位置,开始时间和结束时间。事件可以具有标签,其是描述事件类型,内容,从属关系等的关键字。例如,由ACM学生分会主办的机器人研讨会可以用“机器人”,“ACM”,“计算机科学”标记。
系统必须跟踪谁参加了一个事件(我们假设将有一个登记机制)。
//Model for user class
@Entity
public class User{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private String id;
@Column
@NotNull
private String userType; //can be regular user or admin
@Column
@NotNull
private String firstName;
@Column
@NotNull
private String lastName;
@Column
@NotNull
private String position;
@Column
@NotNull
private String organizationalUnit;
@Column
@NotNull
private String userName;
@Column
@NotNull
private String password;
@Column
@NotNull
private String email;
@Column
private String title;
@Column
private String programAffiliations;
//create the getters and setters
}
//Model for event
@Entity
public class Event{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private String id;
@Column
@NotNull
private String description;
@Column
@NotNull
private String location;
@Column
@NotNull
private long startTime;
@Column
@NotNull
private long endTime;
@Column
private String eventType;
@Column
private String content;
@Column
private String affiliation;
//create the getters and setters
}
您可以通过创建映射根据需要将用户ID和事件ID存储在单独的表中来跟踪创建事件的人员和参加事件的人员。根据需要在用户和事件之间进行映射。