Async related stuff

All tasks here are taken from https://dvmn.org - they are a very cool team.

1. Space game [step 1/2]

Simple space game with ASCII-graphics. Based on asyncio and curses module.

2. Space game [step 2/2]

Improved version of a simple space game with ASCII-graphics. It's time to add more action: asteroids, space garbage, and even a laser gun.  You need to dodge the garbage until the year of 2020. After that you can shot and destroy garbage with your laser gun

3. Send me my photos

Micro-service that helps you to download photos. Creates zip archive on-the-fly and sends it to the client in StreamResponse without saving archive to the server's hard drive. Uses aiohttp and working with subprocesses from asyncio

4. Undeground chat

Console client for a simple TCP chat. Based on asyncio Streams. Sending and receiving data through tcp sockets.

5. Undeground chat with GUI

Improved version of the chat from #4. Now it has GUI interface for registration and using the chat. asyncio, tkinter for GUI. It also uses anyio

6. Tabloid article rate

Micro-service which downloads web pages analyzes the article's text and returns a rating based on a count of positive and negative words in the article. It uses pymorphy2 (morphological analyzer for the Russian language) and works with inosmi.ru. As you can see it also has error handling against wrong URLs and network problems. If Redis URI is specified then caching of results is enabled which helps to decrease the load on a target website.

7. Buses on a map

The application shows the movement of buses on a map of Moscow. It uses WebSockets to communicate with the frontend. The frontend provides its coordinates and receives information about buses in its area. There is also a special script fake_bus.py which can emulate a bunch of different buses constantly changing location because we need to provide backend some data. Project uses click, trio, pydantic