My Experiences on Creating a Backend for a Conference Management System

I am a Software Engineering Undergraduate at the Sri Lanka Institute of Information Technology. I am writing this blog to share my experiences on our group project.

In this semester (3YS1) we have a module named Application Frameworks. In order to pass this module, we need to build a group project using React JS. The project given to us was to build a web application for a Conference Management System. This system will mainly have 4 types of roles: Admin, Editor, Reviewer and User. Editors can add conference details and edit but Admin must approve them before they are published on the website. Registered users can submit research papers and workshop proposals. Reviewers can approve or reject them and then a notification will be sent to the relevant user. Guest Users can purchase tickets if they are willing to attend the conference.

Setting Up the Project

We are a group of 4 members and I am the group leader. Since it is a group Project initially we divided the scope among the members vertically. That means one member is responsible for end to end implementation of a particular feature. I was responsible for User Management. It was a must to build the Front end on React JS. So we had no choice for the Front end. But we were given choices between Node JS or Springboot for the back end. Since the front end is made using React we thought of building the backend using Node JS. After Selecting Node JS we had to face another challenge, which was whether to use Koa JS or Express JS. Express JS is the most popular Node JS framework but Koa JS is a newly introduced Node JS framework which is developed by the developers of Express JS. So we thought of using Koa JS as the Node JS framework in order to build our application. We also used Mongo DB as our database. None of the members was an expert in Node JS or Koa JS and it was our first Node JS project. So before starting to build the backend using Koa JS we all had to learn Koa JS. We did the lab sheets provided by the lecturer in order to learn KoaJS.

Starting the project

After learning the necessary, we started to build our back end. As the leader, I created a repository and uploaded the Starter files so that it would be easier for everyone to work on the project. Then the other members forked the repository and cloned it to their computers and started working on the project.

Designing the REST APIs

Since I am responsible for User Management I designed the REST APIs for Users. There are mainly 3 types of users. They are — Researcher, Workshop Presenter and Guest. So I created 3 REST APIs. The researcher consisted of API methods for registering, logging in, updating, deleting, viewing and uploading research papers. The Workshop Presenters also had the same API methods. The Guests only had API methods to register for the event and to view all the guests. I coded them and exposed these REST APIs so that they can be used in the Front end. The special challenge I faced during this project was I had to handle image and file uploads. I used the Internet to learn about them and I was able to successfully implement it in the project. Daily I completed a part of the Project and I was able to complete this within a week. After every milestone, I committed it to Github. Similarly, other members also followed the same methods and they also pushed their changes to the repository. Finally, I integrated all of them and we were able to successfully create the back end of the Conference Management System. So now we have started working on the Front end of the Conference Management System using React.

I gained so much knowledge and experiences from this project. It helped me to improve my Leadership skills, knowledge and team working ability.

Finally, I would like to thank the lecturer in charge for giving us such a wonderful project and I also would like to thank my group member for giving their fullest contribution to complete the Backend of this project.

3rd year Software Engineering Undergraduate