dvsh

Policy 
Tracker 
JavaScript
NodeJS
MongoDB
Redis
Yarn
GraphQL
Express
Apollo Server
Docker
Jest
GoogleAPIs
GitHub Actions
Policy 
Tracker 
JavaScript
NodeJS
MongoDB
Redis
Yarn
GraphQL
Express
Apollo Server
Docker
Jest
GoogleAPIs
GitHub Actions
About Policy Tracker

Policy Tracker aims to create a web application that will allow users to search for and track the policies of various academic journals and publishers.

Users can make an account to save their preferences and receive notifications when there are updates to policies that they are tracking. The app will also feature a dashboard where users can easily view all of the policies they are tracking and their current status. Policy Tracker is an app that will help researchers stay up-to-date and make informed decisions about where to publish their work.

Description

This project is the backend for Journal Tracker application. In the beginning, the backend of the journal policy tracker is on Flask and SQLite3. My goal for this project was to create a full-fledged functioning backend with Express, GraphQL, and MongoDB write extensive tests for that backend and then deploy it online. I wrote the backend from scratch in JavaScript and I also wrote a couple blog posts during the time documenting the entire process. After finishing the project goals for the Google Summer of Code, I deployed it to a Digital Ocean droplet using docker.

My Key Contributions

During my tenure with the Open Bioinformatics Foundation (OBF) as part of the prestigious Google Summer of Code program, I undertook and successfully completed several key development projects, significantly enhancing the functionality and security of the OBF's web infrastructure.

  1. Apollo GraphQL Mutations for User Authentication and Authorization: I engineered a robust user authentication and role-based authorization system using Apollo GraphQL mutations. This new design improved the user experience by providing a seamless login process and ensured that users only had access to data and functionalities appropriate to their assigned roles.

  2. Data Security Using bcrypt: Recognizing the importance of user data protection, I used bcrypt to hash and salt passwords. This additional layer of security ensures that even if the database is compromised, the user credentials remain protected, thus maintaining the trust of our users.

  3. Testing with Jest: I facilitated rigorous testing of all mutations through the use of Jest, a JavaScript testing framework. This approach guaranteed high-quality, fault-free code, reducing the potential for unexpected errors or security vulnerabilities.

  4. Redis Database for Session Data Storage: To enhance the efficiency of user session tracking, I utilized the Redis database for server-side session data storage. This implementation allows for quick retrieval and storage of session data, enabling efficient tracking of user cookies.

  5. MongoDB for Data Organization: I implemented a One-To-Many relationship between users and policy data in MongoDB, significantly enhancing data organization. This relationship design ensured that policy data associated with individual users could be quickly and efficiently retrieved when needed.

  6. Backend Deployment Automation: To increase deployment efficiency, I automated the backend deployment process using Docker and GitHub Actions. These deployments were set to a DigitalOcean Linux server, which significantly reduced manual input, accelerated the deployment process, and minimized potential human errors.

  7. Documentation with Docusaurus: Understanding the importance of comprehensive and accessible documentation, I utilized Docusaurus to create a documentation website for the project. This ensured that developers and users had easy access to crucial information, aiding in troubleshooting, feature exploration, and overall understanding of the project.

  8. Backend Integration with Gmail API: Lastly, I integrated the backend system with the Gmail API to send verification emails to users. This additional step enhanced the system's verification process, giving users a simple way to verify their accounts and improving the overall user experience.

Policy 
Tracker 
JavaScript
NodeJS
MongoDB
Redis
Yarn
GraphQL
Express
Apollo Server
Docker
Jest
GoogleAPIs
GitHub Actions
Policy 
Tracker 
JavaScript
NodeJS
MongoDB
Redis
Yarn
GraphQL
Express
Apollo Server
Docker
Jest
GoogleAPIs
GitHub Actions
About Policy Tracker

Policy Tracker aims to create a web application that will allow users to search for and track the policies of various academic journals and publishers.

Users can make an account to save their preferences and receive notifications when there are updates to policies that they are tracking. The app will also feature a dashboard where users can easily view all of the policies they are tracking and their current status. Policy Tracker is an app that will help researchers stay up-to-date and make informed decisions about where to publish their work.

Description

This project is the backend for Journal Tracker application. In the beginning, the backend of the journal policy tracker is on Flask and SQLite3. My goal for this project was to create a full-fledged functioning backend with Express, GraphQL, and MongoDB write extensive tests for that backend and then deploy it online. I wrote the backend from scratch in JavaScript and I also wrote a couple blog posts during the time documenting the entire process. After finishing the project goals for the Google Summer of Code, I deployed it to a Digital Ocean droplet using docker.

My Key Contributions

During my tenure with the Open Bioinformatics Foundation (OBF) as part of the prestigious Google Summer of Code program, I undertook and successfully completed several key development projects, significantly enhancing the functionality and security of the OBF's web infrastructure.

  1. Apollo GraphQL Mutations for User Authentication and Authorization: I engineered a robust user authentication and role-based authorization system using Apollo GraphQL mutations. This new design improved the user experience by providing a seamless login process and ensured that users only had access to data and functionalities appropriate to their assigned roles.

  2. Data Security Using bcrypt: Recognizing the importance of user data protection, I used bcrypt to hash and salt passwords. This additional layer of security ensures that even if the database is compromised, the user credentials remain protected, thus maintaining the trust of our users.

  3. Testing with Jest: I facilitated rigorous testing of all mutations through the use of Jest, a JavaScript testing framework. This approach guaranteed high-quality, fault-free code, reducing the potential for unexpected errors or security vulnerabilities.

  4. Redis Database for Session Data Storage: To enhance the efficiency of user session tracking, I utilized the Redis database for server-side session data storage. This implementation allows for quick retrieval and storage of session data, enabling efficient tracking of user cookies.

  5. MongoDB for Data Organization: I implemented a One-To-Many relationship between users and policy data in MongoDB, significantly enhancing data organization. This relationship design ensured that policy data associated with individual users could be quickly and efficiently retrieved when needed.

  6. Backend Deployment Automation: To increase deployment efficiency, I automated the backend deployment process using Docker and GitHub Actions. These deployments were set to a DigitalOcean Linux server, which significantly reduced manual input, accelerated the deployment process, and minimized potential human errors.

  7. Documentation with Docusaurus: Understanding the importance of comprehensive and accessible documentation, I utilized Docusaurus to create a documentation website for the project. This ensured that developers and users had easy access to crucial information, aiding in troubleshooting, feature exploration, and overall understanding of the project.

  8. Backend Integration with Gmail API: Lastly, I integrated the backend system with the Gmail API to send verification emails to users. This additional step enhanced the system's verification process, giving users a simple way to verify their accounts and improving the overall user experience.

(scroll)