Shaokang's Blog

This is a serverless web application. By utilizing Cloudflare worker, similar to edge computing, and personal effort, a constraint distributed structure with fast response time and availability is produced. The making of Financial website is actually led by me. The core part, including design, connection between different components, Devop structures, lots of coding, ARIA, are done by me. Other people’s attribution, including contribution on knowledge passage content, useful tools, quiz generation and verification, are also important. We follow up the Business Agility and use JIRA to do weekly jobs and finish this product in 8 weeks. This is the product being produced based on Design specification by me, most parts stay the same as design. This website designed by me contains knowledge from cross area and utilize knowledge including data representation, prediction, interactive design, interacting with phone app and much more. More details regarding to benefits and incomparable feature could be saw below:

Key Sites

Wiki Page - It contains the development process and different stage in Business Agile - https://wiki.capitaltwo.ga/

Main - The site for all components - https://capitaltwo.ga/

Sub product - Financial organization app - Download at https://capitaltwo.ga/download.html

Incomparable Features

Only the part I am doing is mentioned in the following subsections.

SEO

Indexed/Crawled

Google, Baidu, Yandex, Bing has crawled it.

Sitemaps

Majority of sitemaps will update automatically for search engine to crawl. Major sitemaps are as follows:

https://capitaltwo.ga/sitemap.xml

https://knowledge.capitaltwo.ga/sitemap.xml

https://wiki.capitaltwo.ga/sitemap.xml

I also push to Bing, Google manually.

Points
  • With different search keywords, sitemap, tags
  • Site is actually pushed to google search console.
  • Also optimize the delivery process. Site is being auto compressed.
  • All static is also good in delivery process.

Security

Http/3 & Https

Http/3 and Https protocols are enabled by default from user to server.

Additional

In addition to the security provided by Https, normal communication, including communication between Cloudflare worker and user, and between different pages is encrypted by AES. And the credential saved to localestorage is also encrypted by AES.

Prevent misuse

Anything that need to be hidden is encrypted by using AES encryption method.

User Experience

User friendly

All devices have the same experience via web browser. (Such as mobile and tablet, on top of computer support)

Function page as sample

Pages also have a good looking and interactive data representation, like: (taken yearly budgeting tool implemented by me as an example)

Fast accessing speed

With doing a serious jobs, including minification, compression, configuring appropriately, using distributed delivery structure, the site has a good delivery speed in most places around the world.

Statistic about compression:

  • Minification

    • Main page: 13.44 kb -> 8.35 kb Ratio: 37.82%
    • Some pages in wiki and knowledge passage: ratio: around 40-60%
  • 60%-70% overall additional compression rate

    • Main page: 6044 bytes -> 2119 bytes Ratio: 64.94%

    • Wiki and knowledge page: 20561 bytes -> 4311 bytes Ratio: 79.03%

  • Speed to access the site: Median - 741ms Average - 460ms

Integrate to mobile

I realize it is hard to input everything in one time in yearly budgeting tool. So I also made an app to help you organize daily spending. This app is still in developing. See stage one and two by clicking the links.

Privacy & Encryption

Data will only be saved in user side. User have control over all data. And no personal identification data is used in this process. Any sensitive and non-sensitive data pass to user is encrypted by using AES-GCM, see more details at AES Encrypt and Decrypt on Cloudflare worker

For people really care about privacy, this site is well configured to allow people from Onion network through Tor visiting the site without exiting the last endpoint. See this image for the detail, this is a feature for cloudflare, I just configured it appropriately.

Accessibility

The major page has accessibility feature. Most parts, including main site, knowledge site, wiki page, contain the accessibility feature by using ARIA technology.

The book version of all knowledge passage could also provide more convenience. And I do also provide multiple format, including epub, mobi, pdf, docx in the download site

Design thoughts & walkthrough

Only the part I am doing is mentioned in the following subsections.

And those are other thoughts or final product walkthrough in addition to the previous Design specification by me

Components walkthrough

Only parts related to running of thee site is represented, this could be thought as a supplement and detailed implementation of Design specification.

Core
Quiz

A quizecode, like 65HquZ8, will be required when user is accessing the quiz site. Each passage will correspond to one code and the take quiz button in each essay will automatically generate and direct you to the correct page. Quiz is generated by random selection among a huge set of questions. Based on the design, the collision rate is Revery=1C1060=175,394,027,566R_{every}=\frac{1}{C^{60}_{10}}=\frac{1}{75,394,027,566}, which is super low.

The running and basic verification process could be saw below:

Pointing system

The design and running of the pointing system, like you get to finish one task before accessing the next one. Verification is done by passing a information that doesn’t contain any privacy information to cloudflare worker. And all information is encrypted by using a 256-bit keygen with AES-GCM

Developing procedure

CI/CD

Most of this is done by using github actions and it make the website and the financial organization app always available to user. And different channels could provide people with stable or preview version. The detailed tools used are:

Financial organization app: Expo + Github action + Expo page

Passages&Wiki: Hexo + bash + Github actions

Cloudflare worker/Serverless server: Wrangler + Github actions

Devops & version control

I realize the entire process is actually following the Devops toolchain and most of steps are auto. By using those features, the website is always available to the public. The tool chain I designed and using was:

In the later, more tools, like expo, gitbook, are added. But they are a little bit away of the main part of the site.

For each part, a strict version control is also implemented by using github so that any wrong stuff will be published only when it is well tested.

Easy to maintain

A lot of stuff are generated automatically, this provides other people a chance to focus more on the content instead of the site. For example, here is the script to generate passages site and the published knowledge passage book.

1
2
3
4
5
6
7
8
9
10
11
12
13
hexo clean
cd source/_posts/
git pull
book sm
git commit -am "update"
git push
cd ../../
gitbook epub ./source/_posts ./source/book.epub
gitbook mobi ./source/_posts ./source/book.mobi
pandoc ./source/book.epub -o ./source/book.pdf --pdf-engine=xelatex -V CJKmainfont="AR PL UKai CN" -V geometry:margin=1in -V fontsize=18pt
pandoc ./source/book.epub -o ./source/book.docx
hexo generate
hexo d

My additional role

In addition to the previous mentioned works. I adjust the schedule, arrange everyone’s working and send out recommended work weekly. Provide personal support via one on one chats. Actually, it is to manage the entire work and ensure the workload of each person each week is less than 6 hours, which equals to 2 credits.

Further direction

  1. Connect with certain publication, the book reader could have a different quiz and user is able to scan the QR code to take it.
  2. Increase validation & security level to reduce possibility of being attacked

Credits

ProfessorAmber Field
  
Product Owner (Random order)Caroline Clancy
Madeline Janick
Mayank Katwal
  
Developers (Random order)Shaokang Jiang
Sai Teja Chokkarapu
Ritika Mittal
Peter Daly
  
Scrum MasterShaokang Jiang
  
Product ProxyRitika Mittal
  
DesignersShaokang Jiang
Part of slides come from online source.
All source code is granted based on MIT License. And source code is available on Github
This slide is designed for non-commercial use
> Even though only the work of me is mentioned, other people's work are important and valuable as well.

 Comments