Skip to content

Final Project for CEN 4020. Project focused on implementing MVC on ASP.NET

License

Notifications You must be signed in to change notification settings

reubingeorge/CPMS

Repository files navigation

Conference Paper Management System (CPMS)

Project Description

Preface

This project is an assignment created for USF's CEN 4020 (Software Engineering) Course.

Objective

The created system will automate the reviewer registration process, the author registration process, the paper submission process, the paper matching process, the paper distribution process, the paper review process, and the report generation process.

Team

Team 12 (Khoa Doan, Reubin George, Andric Tam)

System Requirements

Windows 10 (Any Edition), Visual Studio 2019 (or higher), MS SQL

Programming Languages

C# (ASP.NET), Javascript/ jQuery, HTML, CSS (Bootstrap)

Backstory

The Consortium for Computing Sciences in Colleges (CCSC) is a non-profit organization focused on promoting quality computing curricula and the effective use of computing in colleges and universities. The CCSC encourages the sharing of research, effective curricula, teaching expertise, and efficient technological applications in the classroom. Generally speaking, the CCSC is concerned with the advancement of curricular programs in Computer Science, Computer Information Systems, Software Engineering, and any other discipline in which software development is the focus. At its annual conference, they have a number of paper sessions, where professors (or sometimes others) present their research, teaching ideas, and so forth. All papers are judged according to the same standard. The paper has to be academically sound and be something of interest to the conference attendees. This is because any accepted paper is published in their journal—the Journal of Computing Sciences in Colleges—and the high quality and focus of this journal must be maintained.

System Description

The system will allow only three types of users who have the following privileges:

Roles
Author
Reviewer
Administrator

Functional Requirements For Administrator

Category Priority The system shall permit an Administrator to…
Mandatory 1 Log in to account.
Mandatory 1 Start paper and reviewer matching process.
Mandatory 1 Edit paper and reviewer matching results.
Mandatory 1 Distribute the correct papers to the reviewer.
Mandatory 1 Generate a report for each paper based off submitted reviews.
Mandatory 1 Generate authors report.
Mandatory 1 Generate reviewers report.
Mandatory 1 Generate reviewer’s comment report.
Mandatory 2 Prevent papers from being submitted after a specified deadline.
Mandatory 2 Prevent reviews from being submitted after a specified deadline.
Optional 1 Maintain the paper database table.
Optional 1 Maintain the reviewer database table.
Optional 1 Maintain the author database table.
Optional 1 Maintain the reviews database table.

Functional Requirements For Reviewer

Category Priority The system shall permit a Reviewer to…
Mandatory 1 Log in to account
Mandatory 1 Retrieve forgotten passwords
Mandatory 1 Register with given information
Mandatory 1 Download papers matched with them
Mandatory 1 Submit reviews for papers
Mandatory 2 Edit account information

Functional Requirements For Author

Category Priority The system shall permit an Author to...
Mandatory 1 Log in to account
Mandatory 1 Retrieve forgotten passwords
Mandatory 1 Register with given information
Mandatory 1 Submit a paper
Mandatory 2 Edit account information

Non-Functional Requirements

Category Priority Requirements
Mandatory 1 Availability: System should be available 24/7
Mandatory 1 Compatibility: System should be able to operate on Edge, Firefox, Chrome, Safari, and Opera
Mandatory 1 Robustness: System will not allow the user to input bad data
Mandatory 1 Security: System will be inaccessible without login credentials
Mandatory 1 Usability: System should be intuitive and easy to use

Setup

  1. Run Visual Studio as an Administrator VS Administrator

  2. The first time you run the code on Visual Studio, run the sql query file named CPMS_Database.sql SQL QUERY

  3. Ensure that the database has been created with the following tables in it. SQL Tables

  4. Navigate to the properties panel of the CPMS database. SQL DB Properites

  5. Copy the connection string of the CPMS database. DB Connection String

  6. Navigate to the DAO.cs file under the Data folder and paste the connection string between the quotes. DAO.cs file

  7. In the Menu Bar, navigate to Build and click build to ensure that no errors are created. Successful Build


Security Concerns

  1. The sign in controllers access TWO different tables to verify if a logged in user is either a reviewer or an author. Ideally, we want to access only ONE table to verify user authentication and role.

  2. Both Reviewer and Author table do not hash user's password.

  3. None of page that accesses the database checks whether a VIABLE and VALID connection to the SQL database exists.

  4. The reviewer and the author are allowed to create a password of max length of 5.

  5. The Report Controller initially deletes old reports to create new reports. This method ONLY works if the program has permission to do so by both the OS and the Anti-Virus software running in the background.


Potential Improvements

  1. The tables in this project are normalized to Norm Form 3. It might be better to normalize the table to Norm Form 4. The reason why this was not done in the first place was because the database template was provided by the instructor.

  2. We used Data Access Object to perform CRUD operations on the database. We should be using Entity Framework instead.

  3. We should be using React or Angular to create the web components.

  4. We want to run WebAssembly using Blazor. This will help add additional functionality without changing too much of the old code.

  5. We want to host the database on a server rather than use a localhost because every contributor needs to create a new database on the system with entirely new set of records for every table.

  6. No integration, system, acceptance or production tests were performed throughout the course of this project.

About

Final Project for CEN 4020. Project focused on implementing MVC on ASP.NET

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •