Peer Review Finder

Peer Review Finder is an application that allows users to find peer reviewers for their research papers and it also allows users to peer review papers for others as well. It essentially promotes a cycle of peer reviewing and a “You scratch my back and I’ll scratch yours” mentality. Within the web application, there are some basic functionalities that users have access to. One is being able to upload papers to the website’s database in order to allow other users to be able to find the paper for peer review. Another feature is being able to find other papers to review using the search and filter feature. Users can also view their own papers as well as their own reviews that they have written about other users’ papers. Within all of this, there is a basic token system implemented which controls how users can interact with the site. You need more tokens to upload more of your papers to the website, so in order to get more, you need to write more peer reviews for other users’ papers, so it prompts users to keep coming back to help review for others if they want their own papers to be reviewed. For these reviews, the original uploaders of the paper can rate the review based on the quality and this determines how many tokens users will receive for their review, so this prompts users to try to write higher quality reviews. We also allow users to create, view, and edit a basic profile. We also have some admin functionality where the main one is having the ability to delete papers from the website’s database.

For this project, I mainly focused on the backend side of things, but I also worked on some frontend aspects. I was in charge of integrating profiles into our website and I did so by using the profile attribute in the Accounts schema that allows users to add additional fields for a profile which is to be stored in the Users collection. With this, I also contributed to the view profile and edit profile pages as I worked closely with the backend for this area. The next main aspect I worked on was with the review schema, where I was in charge of creating the schema and implementing the edit review component to make use of the schema. This allows users to create reviews for papers and then edit them later on should they feel the need to. I also added in some minor functionalities here and there such as splitting my papers and my reviews up into two pages and the admin delete feature. Finally, the last main thing I worked on was the testing part of the codebase. We were assigned to make sure we had tests for every page in the website as well as every form on the site. I ended up working on a lot of the tests because I wanted more experience with testing code, and this was a great way for me to get some. This project exposed me to testcafe and just gave me more experience in general with testing code, which I quite enjoyed working on even though it was confusing at times.

Overall, from this project experience, I was able to learn a lot more about working on the backend side of things. When I took the undergrad version of this class, I mostly worked on the frontend to get more accustomed to that as I had no experience working on the frontend or backend side of a project. I ended up just sticking with the frontend side of things for that project, and as a result, my knowledge in the backend was lacking. Over the course of this project, I felt like I was able to learn more and really understand how the backend side of this project works with Meteor and MongoDB, especially as I got to work more closely with the schemas and collections. Another valuable takeaway from this project was the testing aspect. As I mentioned before, I had little to no experience with testing code, only a couple of experiences scattered through various classes. This was my first time working with testcafe so it was interesting learning about how everything worked and how to write correct test code. It was certainly challenging at times, but there was some solid documentation out there and also some stack overflow forums that helped me along the way. Overall, the project was a solid experience and I feel like I learned a lot more about the software engineering process.

Here is a link to our project repo, here is a link to our github.io page, and here is the link to our official project site. Below is a screenshot of the home page of our website.