Re: [tor-dev] GSoC 2022 - Tor Weather: Improving the Tor Network

[Status Update for the Project] - Week-5 & Week-6

Completed

  1. Writing Scripts
    a. Modified scripts for NodeDownSub & NodeBandwidthSub to accomodate a better way of handling the trigger times.
    b. Added scripts for NodeFlagSub for Exit, Fast, Guard, Stable, Valid flags.
    c. Uniformed the structure for the scripts to handle similar named columns.

  2. Web-Frontend
    a. Continued working on mock designs
    b. Started developing the jinja templates for the frontend consumption

  3. Miscellaneous
    a. Broke down the NodeFlagSub into individual tables to ease out the addition for further flags.
    b. Fixed the issue with the clearing of tables when starting the development server.
    c. Reorganised the files & directories.

In-Progress

  1. Web-Frontend
    a. Continue working on the Jinja templates for the web frontend including the styling.

  2. Web-Backend
    a. Started working on the flask backend for handling customizations in the UI

Updates for the Project will also be made available on the Project Wiki - Week 5 & Week 6 ยท Wiki ยท sarthikg / Tor-Weather ยท GitLab (torproject.org)

Thanks & Regards,
Sarthik Gupta

ยทยทยท

On Wed, Jul 13, 2022 at 11:02 PM Sarthik Gupta <sarthikg@gmail.com> wrote:

[Status Update for the Project] - Week-3 & Week-4

Completed

  1. Created Mock Server
    a. Created mock-server for mocking the response from Onionoo.
    b. Created interfaces for the response.
    c. Introduced utility functions like camelCaseRecursive, readJson, etc.
    d. Created mock-data for the database when running in dev environments
    e. Setup the mock-data population when running the app.

  2. Writing Scripts
    a. Architecture the pattern for writing scripts, fetching data, sending emails, etc.
    b. Created classes representing Onionoo, Relay, Subscription.
    c. Developed scripts for NodeDownSub, NodeBandwidthSub.

In-Progress

  1. Developing the Scripts
    a. The development of scripts is in progress for other subscriptions.
    b. Having a pattern in place makes it easy to develop new scripts.

  2. Initiated the Web-Frontend
    a. Started creating mocks for the web-frontend, this includes mocking designs for the frontend using tor design guidelines.

Updates for the Project will also be made available on the Project Wiki - Week 3 & Week 4 ยท Wiki ยท sarthikg / Tor-Weather ยท GitLab (torproject.org)

Thanks & Regards,
Sarthik Gupta

On Sun, Jul 3, 2022 at 2:05 PM Sarthik Gupta <sarthikg@gmail.com> wrote:

[Status Update for the Project] - Week-1 & Week-2

Completed

  1. Initialized the Repository:
    a. Used pipenv for managing packages & virtual environments.
    b. Added & configured linters, formatters & other tools.
    c. Created few pre-commit hooks for automating trivial tasks.
    d. Configured dev & prod environments with config file.
    e. Setup a few branch policies on GitLab.

  2. Initiated the Flask App:
    a. Created a shared SMTP package with few utility methods for sending emails.
    b. Configured the process of injecting data in dynamic email templates.
    c. Configured the database connections with the project.
    d. Added models for the tables to be created at startup if does not exist already.

In-Progress

  1. Initiated the development of scripts for fetching data from Onionoo.
  2. Started developing queries for fetching data from the tables including interfaces for each of the responses.

Updates for the Project will also be made available on the Project Wiki - Week 1 & Week 2 ยท Wiki ยท sarthikg / Tor-Weather ยท GitLab (torproject.org).

Thanks & Regards,
Sarthik Gupta

On Fri, May 27, 2022 at 2:03 AM Sarthik Gupta <sarthikg@gmail.com> wrote:

Hello everyone,

Iโ€™m Sarthik Gupta (irc: sarthikg), a recent grad from Punjab Engineering College, Chandigarh & currently working as a Software Engineer at Soroco. This summer, Iโ€™ll be working on GSoC Project: โ€œTor Weather: Improving the Tor Networkโ€ with my mentors GeKo & Silvia. Iโ€™m extremely excited to be a part of Tor and am interested in working on this project!

Briefing about the project: As of now, if any relay disappears from the tor-network, no one will know. This causes the network to lose out on bandwidth from nodes which have been down for hours because no-one knew they were down. Tor-Weather aims at solving this by creating a notification service which relay operators can subscribe to in order to get various types of updates for their relays.

The tor-weather service will offer a plethora of notifications options for the relays. These include, the node being down, running on EOL/Outdated version, losing a flag, ranking in top 20/50/100, etc. These notifications can be subscribed & customised by the relay operators to fit their needs using a web-frontend.

A detailed proposal for this project is available at: https://gitlab.torproject.org/sarthikg/tor-weather/-/wikis/Proposal. I plan to keep this wiki updated with the progress & design decisions taken throughout the development of the project.

Suggestions are always welcomed! Please reach out to us in irc (#tor-dev) for any ideas, questions, or suggestions you might have.

Thanks,

Sarthik Gupta

2 Likes

[Status Update for the Project] - Week-7, Week-8 & Week-9

Completed

  1. Web-Frontend
    a. Created the login, register, email-verification flow.
    b. Architected the system for consuming SCSS files, services for creating responses, and enablement of styles with hot-module reloading.

  2. Web-Backend
    a. Architected the backend structure for API Routes.
    b. Added API Routes for authorization, authentication, verification, register & login.

  3. Miscellaneous
    a. Refactored the architecture of the shared directory.
    b. Created multiple utilities to be consumed across the application.

In-Progress

  1. Web-Backend
    a. Adding error boundary for all the routes.
    b. Creating routes for handling the dashboard.

  2. Web-Frontend
    a. Designing & developing the web-frontend for the dashboard.

Updates for the Project will also be made available on the Project Wiki - Week 7, Week 8 & Week 9 ยท Wiki ยท sarthikg / Tor-Weather ยท GitLab (torproject.org)

Thanks & Regards,
Sarthik Gupta

ยทยทยท

On Thu, Jul 28, 2022 at 1:00 AM Sarthik Gupta <sarthikg@gmail.com> wrote:

[Status Update for the Project] - Week-5 & Week-6

Completed

  1. Writing Scripts
    a. Modified scripts for NodeDownSub & NodeBandwidthSub to accomodate a better way of handling the trigger times.
    b. Added scripts for NodeFlagSub for Exit, Fast, Guard, Stable, Valid flags.
    c. Uniformed the structure for the scripts to handle similar named columns.

  2. Web-Frontend
    a. Continued working on mock designs
    b. Started developing the jinja templates for the frontend consumption

  3. Miscellaneous
    a. Broke down the NodeFlagSub into individual tables to ease out the addition for further flags.
    b. Fixed the issue with the clearing of tables when starting the development server.
    c. Reorganised the files & directories.

In-Progress

  1. Web-Frontend
    a. Continue working on the Jinja templates for the web frontend including the styling.

  2. Web-Backend
    a. Started working on the flask backend for handling customizations in the UI

Updates for the Project will also be made available on the Project Wiki - Week 5 & Week 6 ยท Wiki ยท sarthikg / Tor-Weather ยท GitLab (torproject.org)

Thanks & Regards,
Sarthik Gupta

On Wed, Jul 13, 2022 at 11:02 PM Sarthik Gupta <sarthikg@gmail.com> wrote:

[Status Update for the Project] - Week-3 & Week-4

Completed

  1. Created Mock Server
    a. Created mock-server for mocking the response from Onionoo.
    b. Created interfaces for the response.
    c. Introduced utility functions like camelCaseRecursive, readJson, etc.
    d. Created mock-data for the database when running in dev environments
    e. Setup the mock-data population when running the app.

  2. Writing Scripts
    a. Architecture the pattern for writing scripts, fetching data, sending emails, etc.
    b. Created classes representing Onionoo, Relay, Subscription.
    c. Developed scripts for NodeDownSub, NodeBandwidthSub.

In-Progress

  1. Developing the Scripts
    a. The development of scripts is in progress for other subscriptions.
    b. Having a pattern in place makes it easy to develop new scripts.

  2. Initiated the Web-Frontend
    a. Started creating mocks for the web-frontend, this includes mocking designs for the frontend using tor design guidelines.

Updates for the Project will also be made available on the Project Wiki - Week 3 & Week 4 ยท Wiki ยท sarthikg / Tor-Weather ยท GitLab (torproject.org)

Thanks & Regards,
Sarthik Gupta

On Sun, Jul 3, 2022 at 2:05 PM Sarthik Gupta <sarthikg@gmail.com> wrote:

[Status Update for the Project] - Week-1 & Week-2

Completed

  1. Initialized the Repository:
    a. Used pipenv for managing packages & virtual environments.
    b. Added & configured linters, formatters & other tools.
    c. Created few pre-commit hooks for automating trivial tasks.
    d. Configured dev & prod environments with config file.
    e. Setup a few branch policies on GitLab.

  2. Initiated the Flask App:
    a. Created a shared SMTP package with few utility methods for sending emails.
    b. Configured the process of injecting data in dynamic email templates.
    c. Configured the database connections with the project.
    d. Added models for the tables to be created at startup if does not exist already.

In-Progress

  1. Initiated the development of scripts for fetching data from Onionoo.
  2. Started developing queries for fetching data from the tables including interfaces for each of the responses.

Updates for the Project will also be made available on the Project Wiki - Week 1 & Week 2 ยท Wiki ยท sarthikg / Tor-Weather ยท GitLab (torproject.org).

Thanks & Regards,
Sarthik Gupta

On Fri, May 27, 2022 at 2:03 AM Sarthik Gupta <sarthikg@gmail.com> wrote:

Hello everyone,

Iโ€™m Sarthik Gupta (irc: sarthikg), a recent grad from Punjab Engineering College, Chandigarh & currently working as a Software Engineer at Soroco. This summer, Iโ€™ll be working on GSoC Project: โ€œTor Weather: Improving the Tor Networkโ€ with my mentors GeKo & Silvia. Iโ€™m extremely excited to be a part of Tor and am interested in working on this project!

Briefing about the project: As of now, if any relay disappears from the tor-network, no one will know. This causes the network to lose out on bandwidth from nodes which have been down for hours because no-one knew they were down. Tor-Weather aims at solving this by creating a notification service which relay operators can subscribe to in order to get various types of updates for their relays.

The tor-weather service will offer a plethora of notifications options for the relays. These include, the node being down, running on EOL/Outdated version, losing a flag, ranking in top 20/50/100, etc. These notifications can be subscribed & customised by the relay operators to fit their needs using a web-frontend.

A detailed proposal for this project is available at: https://gitlab.torproject.org/sarthikg/tor-weather/-/wikis/Proposal. I plan to keep this wiki updated with the progress & design decisions taken throughout the development of the project.

Suggestions are always welcomed! Please reach out to us in irc (#tor-dev) for any ideas, questions, or suggestions you might have.

Thanks,

Sarthik Gupta

1 Like

[Status Update for the Project] - Week-10, Week-11 & Week-12

Completed

  1. Web-Frontend

  2. Created the frontend for the dashboard including the templates for listing, editing, creating subscriptions.

  3. Web-Backend

  4. Created the backend routes for handling the form-responses for creating/modifying/disabling/enabling the subscriptions, while also creating data routes for providing data for list of subscriptions, etc.

  5. Miscellaneous

  6. Cleaned up the codebase before the final evaluation.

  7. Connected with Geko & Silvia to give them a code walkthrough.

Next Steps

  1. Integrate the individual pieces and fix minor issues while doing so.
  2. Add documentation for the project explaining its architecture & design choices.
  3. Get feedback from the community and improve accordingly.
  4. Deploy the project.

Updates for the Project will also be made available on the Project Wiki - Week 10, Week 11 & Week 12 ยท Wiki ยท sarthikg / Tor-Weather ยท GitLab (torproject.org)

Thanks & Regards,
Sarthik Gupta

ยทยทยท

On Thu, Aug 18, 2022 at 12:17 AM Sarthik Gupta <sarthikg@gmail.com> wrote:

[Status Update for the Project] - Week-7, Week-8 & Week-9

Completed

  1. Web-Frontend
    a. Created the login, register, email-verification flow.
    b. Architected the system for consuming SCSS files, services for creating responses, and enablement of styles with hot-module reloading.

  2. Web-Backend
    a. Architected the backend structure for API Routes.
    b. Added API Routes for authorization, authentication, verification, register & login.

  3. Miscellaneous
    a. Refactored the architecture of the shared directory.
    b. Created multiple utilities to be consumed across the application.

In-Progress

  1. Web-Backend
    a. Adding error boundary for all the routes.
    b. Creating routes for handling the dashboard.

  2. Web-Frontend
    a. Designing & developing the web-frontend for the dashboard.

Updates for the Project will also be made available on the Project Wiki - Week 7, Week 8 & Week 9 ยท Wiki ยท sarthikg / Tor-Weather ยท GitLab (torproject.org)

Thanks & Regards,
Sarthik Gupta

On Thu, Jul 28, 2022 at 1:00 AM Sarthik Gupta <sarthikg@gmail.com> wrote:

[Status Update for the Project] - Week-5 & Week-6

Completed

  1. Writing Scripts
    a. Modified scripts for NodeDownSub & NodeBandwidthSub to accomodate a better way of handling the trigger times.
    b. Added scripts for NodeFlagSub for Exit, Fast, Guard, Stable, Valid flags.
    c. Uniformed the structure for the scripts to handle similar named columns.

  2. Web-Frontend
    a. Continued working on mock designs
    b. Started developing the jinja templates for the frontend consumption

  3. Miscellaneous
    a. Broke down the NodeFlagSub into individual tables to ease out the addition for further flags.
    b. Fixed the issue with the clearing of tables when starting the development server.
    c. Reorganised the files & directories.

In-Progress

  1. Web-Frontend
    a. Continue working on the Jinja templates for the web frontend including the styling.

  2. Web-Backend
    a. Started working on the flask backend for handling customizations in the UI

Updates for the Project will also be made available on the Project Wiki - Week 5 & Week 6 ยท Wiki ยท sarthikg / Tor-Weather ยท GitLab (torproject.org)

Thanks & Regards,
Sarthik Gupta

On Wed, Jul 13, 2022 at 11:02 PM Sarthik Gupta <sarthikg@gmail.com> wrote:

[Status Update for the Project] - Week-3 & Week-4

Completed

  1. Created Mock Server
    a. Created mock-server for mocking the response from Onionoo.
    b. Created interfaces for the response.
    c. Introduced utility functions like camelCaseRecursive, readJson, etc.
    d. Created mock-data for the database when running in dev environments
    e. Setup the mock-data population when running the app.

  2. Writing Scripts
    a. Architecture the pattern for writing scripts, fetching data, sending emails, etc.
    b. Created classes representing Onionoo, Relay, Subscription.
    c. Developed scripts for NodeDownSub, NodeBandwidthSub.

In-Progress

  1. Developing the Scripts
    a. The development of scripts is in progress for other subscriptions.
    b. Having a pattern in place makes it easy to develop new scripts.

  2. Initiated the Web-Frontend
    a. Started creating mocks for the web-frontend, this includes mocking designs for the frontend using tor design guidelines.

Updates for the Project will also be made available on the Project Wiki - Week 3 & Week 4 ยท Wiki ยท sarthikg / Tor-Weather ยท GitLab (torproject.org)

Thanks & Regards,
Sarthik Gupta

On Sun, Jul 3, 2022 at 2:05 PM Sarthik Gupta <sarthikg@gmail.com> wrote:

[Status Update for the Project] - Week-1 & Week-2

Completed

  1. Initialized the Repository:
    a. Used pipenv for managing packages & virtual environments.
    b. Added & configured linters, formatters & other tools.
    c. Created few pre-commit hooks for automating trivial tasks.
    d. Configured dev & prod environments with config file.
    e. Setup a few branch policies on GitLab.

  2. Initiated the Flask App:
    a. Created a shared SMTP package with few utility methods for sending emails.
    b. Configured the process of injecting data in dynamic email templates.
    c. Configured the database connections with the project.
    d. Added models for the tables to be created at startup if does not exist already.

In-Progress

  1. Initiated the development of scripts for fetching data from Onionoo.
  2. Started developing queries for fetching data from the tables including interfaces for each of the responses.

Updates for the Project will also be made available on the Project Wiki - Week 1 & Week 2 ยท Wiki ยท sarthikg / Tor-Weather ยท GitLab (torproject.org).

Thanks & Regards,
Sarthik Gupta

On Fri, May 27, 2022 at 2:03 AM Sarthik Gupta <sarthikg@gmail.com> wrote:

Hello everyone,

Iโ€™m Sarthik Gupta (irc: sarthikg), a recent grad from Punjab Engineering College, Chandigarh & currently working as a Software Engineer at Soroco. This summer, Iโ€™ll be working on GSoC Project: โ€œTor Weather: Improving the Tor Networkโ€ with my mentors GeKo & Silvia. Iโ€™m extremely excited to be a part of Tor and am interested in working on this project!

Briefing about the project: As of now, if any relay disappears from the tor-network, no one will know. This causes the network to lose out on bandwidth from nodes which have been down for hours because no-one knew they were down. Tor-Weather aims at solving this by creating a notification service which relay operators can subscribe to in order to get various types of updates for their relays.

The tor-weather service will offer a plethora of notifications options for the relays. These include, the node being down, running on EOL/Outdated version, losing a flag, ranking in top 20/50/100, etc. These notifications can be subscribed & customised by the relay operators to fit their needs using a web-frontend.

A detailed proposal for this project is available at: https://gitlab.torproject.org/sarthikg/tor-weather/-/wikis/Proposal. I plan to keep this wiki updated with the progress & design decisions taken throughout the development of the project.

Suggestions are always welcomed! Please reach out to us in irc (#tor-dev) for any ideas, questions, or suggestions you might have.

Thanks,

Sarthik Gupta

1 Like