KWoC: Coding begins!

Abhimanyu Thakre
3 min readDec 16, 2017

--

Introduction:

Life became so much more interesting when I got to know about KWoC (Kharagpur Winter of Code) through a friend. Now, I am glad to be a part of it. KWoC is a 5-week online programme about open source software development lead by KOSS (Kharagpur Open Source Society) which is a group of Open Source Enthusiasts who focus on something more preliminary and relevant, “A Love for Coding”.

Talking about the project I am working on, it’s an open source project called “B.E.N.J.I.” which stands for “Brilliant and Efficient Non-JavaScript enabled Intelligence”. It is a digital assistant for devices that use speech-recognition. The project mainly uses “Python” and “Speech-Recognition”. Our aim is to add new features and make “B.E.N.J.I.” cross-platform.

Getting started:

Coding began on 1st of December, 2017. It has been 2 weeks since then and I can see how it has made an impact on me and my conceptual knowledge. Enjoyment is at par with coding. First day was a bit hard for me, as I was new to open source. As I got used to it, ideas flowed in and I started working on them. It feels great when your first pull request is merged with the project. I started with making the “requirements.txt” file.

Features I added:

1. Creating a file by the command “create hello word document”. This will create “Hello.docx” file on the desktop. Here, the 2nd word is the “filename” and the 3rd word is the “format” of the file. This command works with “Text”, “Word”, “PowerPoint”, “Excel”, “Visio” and “rtf”(Command: “rich”) formats.

2. Creating a note by the command “note… ”. This will create a “Notes.txt” file on the desktop. It will note anything you speak. Every time you add a note, it will be added to a newline. The “.txt” format is chosen as it is lightweight.

3. Initiate shutdown after a specific time by the command “shutdown after x hours y minutes”, x and y are the number of hours and number of minutes respectively.

4. Command to abort shutdown: “cancel shutdown”.

5. Command to shutdown instantly: “shutdown now’.

6. Command to restart instantly: “restart now”.

7. Google functionality command “images of… ”, will show images for specified search. Other google applications such as Gmail and others can be opened by stating their names. Example: Command “Gmail” will open Gmail.

8. Command to open calculator: “calculator”.

9. Command to listen to podcasts: “podcast”. This will redirect you to “CastBox”, one of the best resources to listen to podcasts.

Features I improved:

1. News agencies: Optimized code to run more than 18 news agencies. Also reduced the code to 1/4th the size of the original code.

2. Commands for opening webpage/website earlier used to work for the top level domain “.com” only. Now it works for every top level domain. Example: “open google.com”, “open amazon.in”, “open python.org”, etc.

3. Reduced the code for google functionality to 1/10th.

Things I learnt (1st to 15th December):

Learnt to work with different modules of Python, working with APIs(Application Programming Interface), debugging the code, optimizing the code and some other basic skills.

Current status of the team:

At present, B.E.N.J.I. is compatible with Windows and Linux. Some contributors are working on its GUI, while others are working on adding new features. The team is trying to make B.E.N.J.I. compatible with macOS too. Our mentor, Dhruv Apte, has been very helping and encouraging.

It feels great being an open source developer. The journey so far has been awesome. Looking forward to contributing for the development of “B.E.N.J.I.”.

--

--