Skip to content
Gaurav Parmar edited this page Mar 27, 2015 · 4 revisions

Welcome to SJdownloader dev-guide. This guide is intended for developers who want to contribute in development and improvement of the project. This guide will walk you through the steps to begin with the project and how to contribute.

Walkthrough

  1. [Know the basics] (#know-the-basics)
  2. [Getting requirements] (#getting-requirements)
  3. [Selecting scope] (#selecting-scope)
  4. [Getting examples] (#getting-examples)
  5. [Getting help] (#getting-help)

Know the basics

SJdownloader has two main parts:

  • GUI
  • Back-end i.e. downloading and configuration.

GUI: Interface which user will interact to. Wrapped with buttons, text ctrls and different widgets.
Back-end: Deals with the process of connecting to server and fetching data from there. Also deals with options for configurations that can be set as defaults.

Getting requirements

First you need [python] (https://www.python.org) installed.

  • GUI: wxpython is used for creating the GUI. It has a rich demo to help you in creating widgets and handling events on them. you can get wxpython for:

    • Linux: sudo apt-get install python-wxgtk2.8 python-wxtools wx2.8-i18n libwxgtk2.8-dev libgtk2.0-dev
    • Windows: http://www.wxpython.org/download.php#msw
      Windows user can get the wx-demo from the same page.
  • Back-end: No external modules are used. All the modules are in python standard library.
    You need to have basic knowledge of them, they are:

    • urllib2: used for connecting with server and fetching data.
    • threading: used for stabilizing the GUI with ongoing download procedure.
    • os: used for file operations.
    • sys
    • json: used for reading and writing configurations.
    • time: used for saving history.

Selecting scope

[Here] (https://github.com/swati-jaiswal/SJdownloader/wiki#future-scope) is a list of future improvement scope in SJdownloader. You can add new features too.
If you find a bug, try resolving that.

Getting examples

You can look into wx-demo for live demos of widgets with code. For standard library modules, look their documentation in [python documentation]. If you download python, you get an offline copy of python documentaion in PythonXX/docs/ directory of your python installation.

Getting help

For any kind of help related to project, you can contact [@swati12jaiswal] (https://twitter.com/swati12jaiswal) or drop a mail at jaiswalswati94AtTheRateGmail Dot Com.