Skip to content
This repository has been archived by the owner on Dec 31, 2021. It is now read-only.
Surya Kasturi edited this page Jul 15, 2013 · 2 revisions

Introduction to SciPy Central Project for newbie's

If you are totally new to SciPy Central codebase, looking to contribute to the project,this document tries to help you!

A Brief

SciPy Central is a file management system. Its a place to share code, libraries, etc that have done using SciPy, Numpy and other similar ecosystems. Matlab Central is one such website created by Mathworks for Matlab.

Requirements

The below are the technologies we use broadly. Please refer to README file if you are looking a complete list! We hope to give you a basic idea of what we usually use/ work on.

  • Python 2.7
  • Django 1.4.5 (1.3)
  • Postgre SQL
  • HTML5, LESS, jQuery
  • Twitter Bootstrap
  • Git, Mercurial

Apps

These are the list of apps in our project.

feeds

Location: /scipy_central/feeds/ Provides feed syndication for the content in the site. We used django.contrib.syndication for building this app

filestorage

Location: /scipy_central/filestorage/ It primarily takes care of file storage functions for the site. We currently use Mercurial repos in static directory (/scipy_central/data/code/) for storage of content submitted by users. You might want to consider looking at /filestorage/dvcs_wrapper.py to get an idea how we actually interface it

pagehit

Location: /scipy_central/pagehit Its used to log page hits

pages

Location: /scipy_central/pages/ Its where we have all static pages. Licenses, Markup help, About etc lie here

person

Location: /scipy_central/person/ This app is for User related stuff. Its where user profile is defined!

rest_comments

Location: /scipy_central/rest_comments/ This where user submitted content (ReStructured Text) into HTML before storage. We use Pygments to process markup for the code.

screenshot

Location: /scipy_central/screenshot/ Handles image uploads.

submission

Location: /scipy_central/submission/ Deals with user submissions. At present users have choice of submitting their content under 3 types (snippet, link, package). IPython Notebook file support will be coming soon.

Each user submission is referred as submission or entry. Each submission has Revisions. If you improve an existing submission, its marked as Revision. All revisions are referred using generic relation from submissions!

tagging

Location: /scipy_central/tagging/ Tags to submissions are done here!

thumbs Location: /scipy_central/thumbs/ Reputation (thumbs) system for submissions, comments is done here. Note: This module is under development and will come soon!

utils

Location: /scipy_central/utils/ This app basically provides general functions. For example extracting IP Address from request

Others

  • We use Xapian Haystack for search. Those settings can be observed at /scipy_central/search_settings.py While you need to go through search_indexes.py inside apps for specific details.
  • /scipy_central/urls.py provide global level url conf for all apps. You might want to consider going from here to explore the project
  • /scipy_central/context_processory.py provide extra context variables to dynamically render important static data from settings.py instead of hard coding in HTML files
  • /deploy/ is where you can find settings.py, urls.py (root), manage.pz
  • /deploy/templates/ provide base templates for site design!
  • /deploy/media/ is where our static files data lies
Clone this wiki locally