A web-based project management system

Currently, Internet plays an important role in the modern society, and most of the applications are developed using web applications, for instance social media (Facebook), E-commerce(Amazon) and cloud storage (Dropbox), although the nature and usage of each of the application differs. Even though, M...

Full description

Saved in:
Bibliographic Details
Main Author: Koh, Jin Cheng
Other Authors: Chua Hock Chuan
Format: Final Year Project
Language:English
Published: 2018
Subjects:
Online Access:http://hdl.handle.net/10356/74627
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
Description
Summary:Currently, Internet plays an important role in the modern society, and most of the applications are developed using web applications, for instance social media (Facebook), E-commerce(Amazon) and cloud storage (Dropbox), although the nature and usage of each of the application differs. Even though, Model-View-Controller (MVC) is the most widely accepted design for building web applications on, the selection of the server-side programming language is difficult as there are many options to choose from, like PHP, Java, ASP.Net, C, Node.js and Python. However, the majority of the developers utilize PHP as the server-side language due to its simplicity and large availability of documentation. Despite the benefits of using PHP, it has vulnerabilities and disadvantages such as SQL Injection attack and limited scalability. Therefore, this report would use Python-Flask as the proposed server-side language, an alternative to PHP. Since Python-Flask has great readability and uses a minimalistic approach in designing of the web application thus providing good flexibility. Furthermore, in recent years Python has rose to become one of the most popular general programming language. The objective of this report is to develop a Calendar web application using Python-Flask that allows undergraduates taking semester-based projects such as Design and Innovation Project (DIP) and Final Year Project (FYP) to edit and submit report, and to review the comments made by the supervisor. In addition, the Calendar web application also allows the user to upload the report in document formats as well as to send emails. The project has demonstrated that Python-Flask has better readability and easy syntax as compared to PHP, and it provides much better control to initialize as well as to validate forms in Hyper Text Markup Language (HTML). The Calendar Web Application comprises of Flask extensions that provided specific functionalities. For instance, Flask-SQLAlchemy was implemented to access relational database through Object-Relational-Mapper (ORM) and the creation and validation of forms in HTML is accomplish using WTForms. Furthermore, the authentication of users is handled by Flask-Login, while Flask-Principal to ensure that users do not gain unauthorized access to restricted views. Lastly, an administration page is created using Flask-admin in order to manage the data through a user-interface and Flask-SocketIO is used to initialize real time communication between client and server.