# Blockchain Commons Software Development Internship
Hi! My name is Harsh Bardhan Mishra, and I will be collaborating with Blockchain Commons as part of it's Summer Internship program as a Software Developer. This document entails all of the projects and achievable milestones that I would be working forward as part of Blockchain Commons and how my success would be measured for the same.
## Refactoring Spotbit
Spotbit is a Flask application designed to show-case Bitcoin price data and candles. My first milestone would revolve around publishing a documentation site for Spotbit to allow developers and general-users, navigate across Spotbit and use it with maximum efficiency.
The developer focussed documentation would revolve around:
- Setup & Installation Instructions
- API Documentation (Swagger UI)
The user focussed documentation would revolve around:
- Application workflow and design interface
- Managing configurations
- Usage of exchanges for averaging
I would also be working on refactoring the `README.md` file to ensure that the documentation is modularized in effect.
The milestones for this would be:
- Setting up a Documentation Site using Sphinx
- Setting up Swagger UI for the Flask API
- Refactoring and publishing documentation on the Sphinx
- Publishing the documentation over ReadTheDocs
| Milestone | Date |
| -------- | -------- |
| Setting up a Documentation Site using Sphinx | July 10 |
| Setting up Swagger UI for the Flask API | July 13
| Refactoring and publishing documentation on the Sphinx | July 17
| Publishing the documentation over ReadTheDocs | July 20
Given the fact that I have prior experience in Sphinx, I can dually commit to the same.
Right now, the code quality of the Spotbit's Flask API is at a lower end. I would be next working on refactoring the code to match the standards we would be looking for in code readibility and maintenance.
The milestones for this would be:
- Setting up Code Quality checks using Flake8
- Refactoring the Codebase to suit the purpose of readability
- Setup a CI pipeline for automated checks
| Milestone | Date |
| -------- | -------- |
| Setting up Code Quality checks using Flake8 | July 22 |
| Refactoring the Codebase to suit the purpose of readability | July 26
| Setup a CI pipeline for automated checks | July 27
## Setting up CI pipelines
I would also be working on developing consistent CI pipelines and project management tools and bots to be used with GitHub.
This project would concern around the following:
- [Consistent GitHub Repo labels](https://github.com/BlockchainCommons/Community/issues/39)
- [Local Electrum Server on Regtest](https://github.com/BlockchainCommons/sweeptool-cli/issues/2)
- [Adding GitHub Actions for Blockchain Commons Website](https://github.com/BlockchainCommons/www.blockchaincommons.com/issues/8)
I would also forward on identifying further areas where CI pipelines can be setup for automated checks. An extra area of focus would be on adding Issue/PR Templates across all of the repositories.
The time required for executing this project would be ~ 2 week of effort.
| Milestone | Date |
| -------- | -------- |
| Consistent GitHub Repo Labels | July August 31 |
| Local Electrum Server on Regtest | August 3
| Adding GitHub Actions for Blockchain Commons Website | August 7
## Progress Made
I have successfully executed one of the Community Issues around [Sponsor Listing](https://github.com/BlockchainCommons/Community/issues/24). The [Pull Request](https://github.com/BlockchainCommons/www.blockchaincommons.com/pull/17) has been merged to achieve the same.