Git Product home page Git Product logo

rubix982 / synet Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 6.0 2.83 MB

A web proxy is written in ASP.NET with an admin console written in ReactJS. This was made as a repository for CN CS307's 1st assignment for web proxies @ FAST NUCES, Khi

Home Page: https://synet-rubix982.vercel.app/app/dashboard

License: Apache License 2.0

Makefile 1.08% Dockerfile 0.55% JavaScript 59.95% Shell 3.15% C# 29.23% Python 5.70% HTML 0.34%
networking proxy aspnetcore forks-shield linkedin-shield contributors-shield issues-shield stars-shield docker web-proxies reactjs

synet's Introduction

Contributors Forks Stargazers Issues MIT License LinkedIn DepShield Badge


Logo

ASP.NET | ReactJS

Web Proxy

A web proxy, implemented in ASP.NET

Report Bug ยท Request Feature

Table of Contents
  1. About The assignment
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgements

About The assignment

ABANDONED REPO

Overiew

Repository for CN CS307's 1st assignment for web proxies. Please see the actual assignment sas attached here.

The notion page for this repository can be found as the following,

<iframe src="https://www.notion.so/CN-Assignment-1-88106ce5c57d428ba42a8869e622d38c" style="width:100%; height:300px;" ></iframe>

Built With

This section should lists the technologies used,

  • Docker | Docker Compose, to isolate the application
  • Makefile and bash scripts, to help and develop the project quicker
  • ReactJS, a CRA in the client
  • Python, to write some automation scripts
  • ASP NET Core 5.0, to write the server side for the actual proxy

Screenshots

Synet - Main Dashboard Synet - Ban Page Synet - Ban Page Synet - Ban Page

Requirements Fulfilled

The list of requirements that have been fulfilled uptil now with respect to the uploaded assignment document have been listed here,

  • Connect the proxy with the browser - just going to stick with Python automation ( I guess it's valid! )
  • Admin Console
  • Filtering Rules
  • HTTP Connection
  • Concurrency Management
  • HTTPS Connection
  • Caching
    • LRU Algorithm
    • LFU Algorithm
    • Redis Integration
    • Redis caching, estimate 2-3 hours
      • How to measure performance
      • How to find out if the caching is helpful

To see the original assignment, please take a look at About Section.

Getting Started

This is an example of how you may give instructions on setting up your assignment locally. To get a local copy up and running follow these simple example steps.

Prerequisites

This project was developed on Linux to simplify the workflow.

Keeping Linux in mind, you just need,

  • Git
  • Docker

Installation

Find git from https://www.git-scm.org, and Docker from their main page. After that, simply run the following commands to build and start the project,

git clone https://www.github.com/Rubix982/Synet
cd Synet
make build-dev # Assuming you're working on Linux

Usage

TODO!!!!!!!

Use this space to show useful examples of how a assignment can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources.

For more examples, please refer to the Documentation

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the assignment
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the Apache-2.0 License License. See LICENSE for more information.

Contact

Acknowledgements

synet's People

Contributors

rubix982 avatar

Watchers

 avatar  avatar

synet's Issues

Switch HTTPS Certificate from `self signed` to `CA signed`

As the title states.

Self-signed certificates are a danger and are not guaranteed to play well with HTTPS protocols across the public internet. It is much more recommended to use a CA for a locally hosted server so it is easier to send requests to and fro.

Redirect does not work as expected

Redirect, RedirectResult, and RedirectToAction all do not work as expected. There is no explanation as to why these are failing. There is nothing in the terminal, in dev tools, in the editor, in the docs, or stack overflow that talks about this. So I'm not sure where the breaking changes are.

Another viable solution would be to implement a JS async script within the C# code itself. This is long winding and not part of the original scope, so this is not a priority at the moment. But it will be hugely beneficial and convenient if redirects do happen.

For more information, check out,

Implement a Load Balancer

For concurrency, how do you actually distribute the workload so the requests are mapped accordingly? To implement this, there can be multiple containers of server, that get their requests from a central load balancer that remembers how much load a container is handling at a moment.

[DOCKER] Determine the https port for redirect ...

Fix the HTTPS connection issue, as shown by the warning,

backend       | warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3]
backend       |       Failed to determine the https port for redirect.

Thans!

Add new fields to the `server.Request` class

This is to be approached very later on - there is no need to implement this at the moment. This issue will serve as a way to collectively remember the new additions to the server.Request class

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.