Some projects I wrote:

A Python command line tool published in pypi that was created to view league rankings, up to date news and scores for various soccer leagues


Implemented some OJ Solutions in Scala including Scala99

  • Wrote full test cased with Junit and ScalaTest while testing them in both Intellij IDEA and Travis CI

A Golang tool that can be used to join screenshots of teleplay while also specifying the caption height

below is the generated picture:


A bunch of code misc/projects/demos

  • Demos of different programming languages

  • Using a makefile to run unit tests for single directory

A Forum based on Spring Boot/Spring MVC/Spring Data JPA/MySQL/Angular/Restful

  • Implemented authentication by JWT(Json Web Token) and authorization by AspectJ(AOP Programming) without intrusion to function code
  • Integrated Travis with Unit/Integration Test written in JUnit and Mockito to achieve Continuous Integration

A recommender website that provides recommendation music you may like

  • Used requests to write the multi-threaded crawler that extracted album/song information used as train dataset
  • Implemnted the Item-CF algorithm used to calculate the item similarities and provide the recommended results
  • Built the system based on MVC architecture(Bootstrap/Jquery/Django) and deployed it with Nginx/Gunicorn
  • Performed data visualization based on user feedback(e.g. fresh rate) via Google Highcharts library

A family asset management software based on QT

Projects I participated:

  • Provided 2 PRs for zhih-oauth written by @7SDream PR1 PR2

  • provided a revised version myLM for LibraryManagement written by @yumendy. Used form to replace request.POST.get() with form.cleaned_data.get(), which made it easier to separate the front and back ends. Increased the judgment of error conditions, while migrating the database from SQLite to MySQL

Projects in the pending:

Based on some features of Python, we can implement the following codes:

class AlgorithmImplementation(object):

    def _get_doc():
        doc_en = """some English illustration"""
        doc_fn = """some French illustration"""
        help_doc = {'en': doc_en, 'fn': doc_fn}
        return help_doc

    def __doc__(self):
        return AlgorithmImplementation._get_doc().get('en')

    def __call__(self):
         """ now execute the real sort """ 

using __call__ to call the real function , using doc to call the default documentation,like :

def help_cn(problem):
    return problem._get_doc().get('en')

def help_en(problem):
    return problem._get_doc().get('cn')

Then we will be able to type the input in shell:

>>> from bweever import SomeAlgorithm,help_en,help_fn
>>> help_en(SomeAlgorithm) # check explanation of Algorithm with French
>>> help_fn(SomeAlgorithm) # check explanation of Algorithm with English
>>> SomeAlgorithm(input)   # execute the real algorithm function