Note: You are currently viewing documentation for Moodle 1.9. Up-to-date documentation for the latest stable version is available here: Projects for new developers.

Projects for new developers: Difference between revisions

From MoodleDocs
(moved to dev docs)
 
(174 intermediate revisions by 32 users not shown)
Line 1: Line 1:
This page currently lists the projects available Moodle's participation in the [http://code.google.com/soc Google Summer of Code 2007].  Each project here is a nice self-contained project suitable for student programmers to complete in three months or less, and must have an associate mentor who is a regular Moodle developer.
{{Moved_to_dev_docs}}
 
Current status:  Thank you to all the applicants!  Google have now confirmed the final selections and we have ten projects with a mentor and a student.  Here is a [http://moodle.org/mod/forum/discuss.php?d=69206 general discussion about the project].  Complete details are below.
 
'''Bold text'''==Google Summer of Code 2007 Timeline==
* '''Starting now''': construct detailed specifications for each project (see below), with feedback from the mentor and the Moodle community.  Some questions will be easy for your mentor to answer directly, but some you may have to post in the appropriate [http://moodle.org/course/view.php?id=5 Using Moodle] forums to gather and evaluate community feedback.
* '''May 31''': Coding officially starts.  At this time you should have a bug in the [http://tracker.moodle.org Moodle Tracker] that breaks your project down into subtasks.  Please keep this tracker up to date with all your subsequent work - it's the best place for all asynchronous discussion with your mentor.
* '''July 9-16''': Interim evaluation of code so far
* '''August 20''': Coding should be completed
 
 
 
              Reginald Anyichie.
 
 
Allergies and  Asthma
 
 
            Abstract
 
Over the last decade allergies and asthma have become increasingly
 
common among the New  York City population especially the population in
 
Harlem. An allergy is an abnormal sensitivity to an allergen that is inhaled,
 
eaten or touched while asthma is a chronic lung condition that affects your
 
airways causing constriction of mostly upper segment of the airways
 
resulting in difficulty breathing because of poor air passage this could also
 
due to abnormal sensitivity to sunstances or allergen.
 
This project  required the use  of various materials to explain the necessary 
 
points,  it also includesbthe different symptoms of asthma, and allergies and
 
methods  used to assess  people who have allergies or asthma.
 
Spirometry is an instrument that is used to measure the volumes of
 
the lungs, during the spirometry test diferernt lung volumes are measured.
 
Sometimes not just the amount but the  speed of air that can be
 
inhaled and exhaled are also measured. It enables one to compare the
 
different volumes that are compared to normal volumes to determine if
 
individual volume is below expectation or at expected. The below expected
 
values can be seen in astmatics or people with other lung diseases.
 
On contrary the method or test  used to determine if a person has allergies
 
or sensitivity to a substance is called the pollen count.A Pollen count is the
 
measurement of the number of grains of pollen in a cubic meter of  air .The
 
instrument used to make pollen counts is a rotored sampler. A rotorod
 
sampler is composed of twosmall polystyrene rods.One surface of each rod
 
is coated with silicon grease to capture and retain impacted particles.
 
Pollen counts are useful for allergy sufferers and their physicians to
 
correlate symptoms and  causative agents.The instruments used for the
 
spirometry test is the spirometer.Thespirometer  consist of a mouthpiece
 
and disposable tubing that is connected to a machine.
 
      Types of allergies known are food allergies, and allergic rhims. The
 
symptoms of allergies are, swelling of mouth, diarrhea, running nose,
 
itchy eyes, and cough etc while the symptoms of asthma are coughing
 
wheezing,and chest tightning. Thereare also different levels of
 
asthma.The first level which is mild intermittent asthma; victims have the
 
symptoms less than two times a week,and they do not have problems
 
between flare ups.The second level which is mild persistent asthma;
 
victims have symptoms more than two times a week, but not more than
 
one time per day. At the moderate persistent level which is the third level,
 
victims have symptoms everyday,and they use their rescue medication
 
everyday. At the final level known as the severe persistent asthma,
 
victims have symptoms constantly ,and their physical activity decreases.
 
.   
Recommendation on writing good paragraph
         
Abstract
It is important to know how to write a paragraph.There are certain
 
rules you should follow in order to write a good paragraph ,you will know
 
how to write papers if you know how to write paragraphs. When writing a
 
paragraph you must analyze the information you have,and also think about
 
it well. When you do this,you are guaranteed to have a good
 
report/paper.The purpose of this project is to enable young scientist to write good reports on their research. The aim is to understand specific guidelines
 
in writing a paragraph.
 
When writing a paragraph we must always begin with a topic sentence.
 
An example of a topic sentence is “There are three reasons why America is
 
one of the richest countries in the world”. Another thing we should keep in
 
mind when writing a paragraph is to reduce the number of introductory words
 
or phrases to your sentences and paragraphs, in other words do not make
 
your topic sentence long. Also when writing we should avoid the use of
 
passive voice. We should try to use the active voice as much as
 
possible.When using passive voice you are telling the reader that  you do
 
not know  who performed a specific action. Passive voice also strips your
 
prose of interesting historical personalities, and it includes unnecesssary
 
words in a paragraph.
 
Cutting is another strategy we should use when writing a paragraph .
 
When you read over your sentences carefully as you are writing you will
 
realize that there are many sentences that are not necessary.That is when
 
the use  of an ellipse comes into place.An ellipse is used when you cut words
 
out of  quotation.
 
    Finally when writing a paragraph you should not use contractions e.g don't
 
,shouldn't, won't. Write it in their complete form.  When you are done writing
 
your paper you should check, and see if your paragraphs are in their same
 
tense,and also if your work makes sense.
 
In conclusion the purpose of this  paper is to help young scientist improve
 
in their writing.And they will do this by following the guidelines of writing some
 
of which are above . When they follow these steps they are bound to write
 
excellent reports.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Keystone On Research.
 
            ABSTRACT
 
A  library is a place were people go to collect information. It can also be
 
referred as a collections of books. Many young scientist today wonder where
 
they can get good information on their research or report. Well if your one of
 
those young individuals out there.The best place you can go is online,  the
 
memorial sloan-kettering cancer center library. The mskcc library is meant to
 
be presented to several audiences. In this paper you will learn how to get on
 
the library website, and how it will help you find the information you want.
 
You will also learn about different liberians and where they work .
 
      The first step you take when getting on a website is that you log on with  the
 
address which is http://library.mskcc.org  When you do this the next thing
 
you do is go inside mskcc,then you select library resources then you will see
 
all the library resources.You can choose any library resource you want. Then
 
when you are  done you can  click under  Tabs and quick links.You can
 
also choose any link you want .But before we go further under the library
 
resources are patient families ,and caregivers,medical teams ,and research
 
programs,and administrative staff. The administrative staff  provides
 
selected information of interest  to managers of the memorial sloan kettering
 
cancer center.Under the medical teams ,and research programs is cancer
 
biology for those interested in basic science research ,and for those
 
interested in clinical services and research there is general medicine.
 
      Another library resource you can go under is the electronic journals
 
were it offers thousands of electronic journals for employees and
 
students,and to get electronic books you have to log off campus an
 
example of  an electronic journals is the AACN clinical issues.
 
A liberian is an information professional trained in library science ,and
 
information science. Some famous liberians are J.Edgar Hoover ,Benjamin
 
Franklin ,and Laura Bush. Some places a liberian works in universities,
 
public schools, hospitals,and research centers .
 
      In conclusion a library is where you can find all the information  you need
 
for your paper .So if you feel like you do not have enough information go to
 
http://library.mskcc.org  or contact liberian at 212-639-7439.
 
 
 
Radioactive Treatment of C. Neoformans infection.
     
Abstract
 
Cryptococcus neoformans is a yeast like fungus that can live in both plants
 
and animals. It can be also described as a species of fungus that causes
 
cryptocosus. In this paper you wil learn how radiation can be used  to cure
 
yeast infection in plants ,and animals,and also you will learn about the
 
materials ,and the methods taken during the experiment.
 
Radiation is energy in the form of moving subatomic particles. Radiation
 
can be used to cure yeast infection by eliminating the yeast.Yeast infection in
 
humans can have a lot of disturbing symptoms like skin infection,your sight
 
will begin to get poor,hearing defects, they are sometimes mistaken for acne.
 
Radiation can sometimes be used to cure other diseases like cancer. A
 
biodistribution during the experiment  was to evaluate
 
the ability of radioactive ions on  cryptococcus.
 
Some of the materials used for the experiment are a flask,, microscope
 
a hemocytometerI,and some hydroperoxide. Some of the methods taken
 
during the experiment were ,that 24067 cells were cultured,then they  were
 
counted on the hemocytometer which is a device  used to count blood cells .It
 
is made of a thick glass microscope slide with rectangular identation that
 
creates a chamber  of certain dimensions.The cells were counted  on the
 
hemocytometer to see how concertrated they were then the AIJ was infected
 
with yeast .
 
      The result of this experiment was that  the more hydroperoxide put on to
 
the cells the more concentrated they were,and the more IGG grams the more
 
positive the  cells were.
 
In conclusion cryptococcus neoformans is a yeast infection that can
 
effect both plants ,and animals,and radiation can be used to cure diseases
 
like cancer ,and cryptococcus.
 
 
        References
 
 
http://www.answers.com
 
http://asthma.about.com
 
http://biology.netrwesleyan.edu
 
http://www.medicalnewstoday.com
 
http://www.netdoctor.co.uk
 
http://www.paragraphorganizer.com
 
http:www.pollen.com
 
 
 
 
 
 
 
 
 
 
Acknowledgements.
 
 
            Dr. Sat Bhattacharya
 
  Lecturers Joan Seidman, Isabel Sullimanouf
 
MSKCC(Memorial Sloan Kettering Cancer Center .)
 
Harlem children society
 
==Google Summer of Code 2007 Projects==
 
The following projects are in no particular order!
 
===Developing new question types for the quiz===
 
The quiz has a plug-in architecture for question types. We currently have implementations of most of the basic question types, it would be nice to have implementations of some more interesting types, perhaps using the YUI JavaScript library to do some interesting interactions (but with an accessible fall-back). Which question types could be left up to the student, but some suggestions are:
 
* Drag and drop versions of ordering and matching question types.
* Place a marker or draw a line on an image question types.
* Drag the missing words into the sentence/onto an image question type.
 
Another way to find question types to implement would be to review other systems and make sure Moodle supports all the question types that other systems support.
 
I envisage that some of these question types would be incorporated into the standard Moodle install, but others would just be put in the contrib area. Part of the project could also be improving the plugin API. There are some minor know issues with it that make it harder that it needs to be to install new question types from contrib.
 
'''Mentor:''' Tim Hunt
 
'''Student:''' Adriane Boyd
 
'''Full Specification:''' [[Student projects/New question types|New question types]]
 
 
===Enterprise-level improvements===
 
Here are a few things you could do to help Moodle run in a heavy environment (either big Moodles or many multiple Moodles).
 
* Adapt all the DB installation and upgrade scripts to run from the command line, so fully scripted installations are possible without using the web interface.
 
* Develop a profiling system for developers to use when testing their code.  Aim to spot and fix performance bottlenecks in Moodle with good reports and suggestions about what developers could do.
 
'''Mentor:''' Penny Leach
 
'''Student:''' Dilan Anuruddha Karanachcharighe
 
'''Full Specification:''' [[Student projects/Enterprise-level improvements|Enterprise-level improvements]]
 
 
===Chat revamp===
 
mod/chat needs a bit of an overhaul. Possible interesting approaches:
 
* Simplify chatd and rewrite as a proper forking daemon. Great process control and networking project, and properly a good case for a bit of AJAX.
* Integrate Moodle with a Jabber backend, plus frontend glue.
** On the backend, we need to consider authentication, chatroom creation, and logging.
** On the frontend, ensuring that we can get Jabber clients started reliably on the end-user's machine, and  integrate a preexisting web-based Jabber client for Jabber-impaired users.
** Installation matter: a clear install HowTo for the Jabber + Moodle.
 
'''Mentor:''' [[User:Geoff Cant|Geoff Cant]], Martin Langhoff
 
'''Student:''' Thotage Piyasena
 
'''Full Specification:''' [[Student projects/Chat revamp|Chat revamp]]
 
 
===Messaging improvements===
 
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.
 
Functionality improvements:
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren't online at the time.  Initially the two plugins would be "browser" and "email", but later there could be a jabber plugin, an IRC plugin etc)
 
Gui improvements:
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you'd need to use that)
* Improve the messaging window to allow chats among three or more other people at once.
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.
* Improve the methods to search messages and find discussions from the past.
* Improve administrator auditing of message logs, including filtering etc.
 
'''Mentor:''' Martin Dougiamas
 
'''Student:''' Luis Filipe Romão Rodrigues
 
'''Full Specification:''' [[Student projects/Messaging improvements|Messaging improvements]]
 
 
 
===Automated grading for Computer Programming Assignments===
 
The project here is to develop two things
 
#A Moodle assignment plugin to handle the GUI and higher-level processes involved in submitting and grading a programming assignment
#An interface to an external 3rd party program (preferably an established, active open source project) to handle the actual analysis and grading of the source code.  It should have plugins to handle arbitrary languages.
 
'''Mentor:''' [[User:Nicolas Connault]]
 
'''Student:''' Arkaitz Garro
 
'''Full Specification:''' [[Student projects/Automated grading of programs|Automated grading of programs]]
 
=== User Management Improvements ===
 
* Improve the User features in moodle to allow bulk-operations.
** Create an interface to do bulk operations on users (e.g. delete users, reset passwords etc) This could potentially use an AJAX implementation for multiple filtering/selection of required students for bulk operations.
** Overhall the CSV upload features to allow more flexibility (more options, features to auto-generate more fields such as usernames)
* Enrolment
** Specify time of manual enrollments ([http://tracker.moodle.org/browse/MDL-8877 MDL-8877])
* Notes
** Allow teachers to put notes for each student in every course, much requested feature ([http://tracker.moodle.org/browse/MDL-7077 MDL-7077])
 
'''Mentor:''' Yu Zhang
 
'''Student:''' Andrei Bautu
 
'''Full Specification:''' [[Student projects/User Management Improvements|User Management Improvements]]
 
 
 
=== Email interface to Moodle ===
 
The idea is to let people reply naturally to email they receive from Moodle to change settings or add further comments into forums etc.  Moodle activities can then be accessed like a mailing list.
 
* Add a setting so admins can specify if they want an email interface enabled.  Without it, none of the following is active and Moodle functions just as it does today.
* Improve the outgoing emails in Moodle to contain a unique and robust code in the headers and potentially also in the subject line (switchable by user setting) that encrypts information about the receiver, the activity instance and the specific data.  For example, all the information to securely identify a forum post.
* Write a PHP script designed to run from the commandline as part of an email filter, that accepts emails on standard input, parses them and then calls a function in the relevant module.  For example forum_incoming_email() in mod/forum/lib.php.
* Write function for forum module (at least) to parse the content of the email and add it as a post from the user.  Other modules can be worked on if there's time ... resources could be sent back as attachments, quizzes could send questions and accept multiple choice answers, the course could send back a listing of activities with further codes for each one, etc.
* Security is essential!
 
'''Mentor:''' Martin Langhoff
 
'''Student:''' Peter Boswood
 
'''Full Specification:''' [[Student projects/Email interface|Email interface]]
 
 
=== Secure RSS feeds ===
 
Currently RSS is less than useful because:
* Either we can't publish private information to the outside world because it's too sensitive.
* We open up sensitive information to the outside world
 
We should add codes to make the RSS URLs practically impossible to guess, much the same way as Google Calendar does it.
 
* Overhaul all the RSS feeds in Moodle to make use of a long hash-like string in the URL for identification (Forums, Data etc).
* Store these codes in a new field per-user and per-course. 
* Add GUIs to let the user recreate their code to something else should they suspect a breach.
* Add RSS to other areas of Moodle such as the participants "last logins" and the activity logs.
* Explore/research other methods of opening up RSS in a safe way to the outside world.
 
'''Mentor:''' Petr Škoda
 
'''Student:''' Udit Sajjanhar
 
'''Full Specification:''' [[Student projects/Secure RSS feeds|Secure RSS feeds]]
 
 
 
=== Social Networking features ===
 
Explore the possibilities of social networking features by expanding the user profile page:
 
* add user tags that describe interests etc, as links to "interest pages"  eg constructivism
* interest pages that contain information about all the people who share that interest, as well as blog entries that use that tag, google searches, other info using standard Moodle blocks etc
* allow users to add other users as "friends", which are displayed on their user profile pages
* think about controls to prevent abuse of these features in a school environment.
* allow users to specify an external RSS feed to their own external blog, parsing the feed insert entries (optionally selecting by tag) as internal blog entries for that user, adding new tags/permissions as specified, with links back to external entry etc.
* if time, explore deeper integrations with Youtube, Flickr, MySpace, Facebook etc.
 
'''Mentor:''' Martin Dougiamas
 
'''Student:''' Luiz Eduardo Laydner Cruz
 
'''Full Specification:''' [[Student projects/Social Networking features|Social Networking features]]
 
 
 
===Moodle Voice===
 
*Objective: Adapt Moodle interface to output the needed VoiceXML so you can navigate with your voice with a VoiceXML enabled browser, such as [http://www.opera.com/ Opera].
*[[Development:Voice_Project|Project Proposal]]
 
'''Mentor''':  [http://moodle.org/user/view.php?id=153093&course=1 David Horat]
 
'''Student''': [http://mayankjain20.googlepages.com Mayank Jain]
 
'''Full Specification''': [[Development:Voice|Development:Voice]]
 
 
----
 
==Other open projects still looking for students==
 
 
=== Roles interface improvements ===
 
Improve the roles editing interface by making it more dynamic and flexible.  You can use the YUI library for ajax if you like, but there must be a good fall-back interface too.  Some ideas include:
 
* Improve the order of the capabilities and implement better grouping.
* Make the groups of capabilities collapsible to make it easier to "zoom in" to a particular section.
* Add floating tooltip help when you hover over any given capability.
* Experiment with an (alternate) interface seeing the roles all side-by-side for easier comparison/editing.
* Implement a roles backup and restore system to allow site administrators to distribute useful roles in the moodle comunity (rather than having to describe the permissions setup)
* Analyse the problem carefully with feedback from the community for more ideas.
 
 
 
===Integration with bibliographic systems such as Wikindx===
 
Managing references and citing them is an important behaviour in university education and research. Bibliographic facilities are quite complicated and go beyond the capabilities of Moodle built-in technology (e.g. the database activity). Integrating Moodle with open-source bibliographic software such as [http://wikindx.sourceforge.net/ Wikindx] could much facilitate this practice within Moodle.
 
Design and construct an integration with Wikindx (or other open-source bibliographic tools, if appropriate).
 
Teachers should be able to easily refer to wikindx bibliography items throughout a Moodle course, and be able to:
 
* Generate correctly-formatted in-place references (using standard styles e.g. Harvard, APA) for the commonly-cited reference types (e.g. journal article, book chapter, book). It may be possible to delegate the formatting directly to wikindx (since it already performs functions like these) rather than implementing a whole new set of logic in the Moodle integration.
** Possibly, allow some kind of direct searching of a wikindx database from within Moodle, so as to make it easier to refer to items
* Generate reading lists / bibliographies
* Allow export of the above into common machine-readable formats such as Bibtex or RIS. (Wikindx can perform this so again it's a question of hooking into, or expanding, wikindx functionality.)
 
See also [[Development:Wikindx]] and [http://moodle.org/mod/forum/discuss.php?d=23022 this forum discussion] too
 
 
 
===Implement CATs in Moodle===
 
[http://www.amazon.com/Classroom-Assessment-Techniques-Handbook-Education/dp/1555425003/ This book] describes a number of assessment techniques that involve collaboration and group work, and therefore fit very well into Moodle's Social Constructivist philosophy. The book about using these techniques in the classroom, but at an conference I attended there was a talk by Jean Runyon and Thomas Gorecki from the College of Southern Maryland saying how well these techniques work online.
 
Some of them just need a forum of something basic, but others would need to be done as a database module templates. Doing this would
 
# Make Moodle an even better teaching tool.
# Provide some good exemplars of how to do interesting things with database templates.
# Possibly highlight limitations in the database template system, that would require improvements to the database module code to overcome.
# One of the outcomes of this project could be some really good 'How to write a database template' tutorial, which would be very valuable to the community.
 
This is my (Tim Hunt's) idea, but I would not be interested in mentoring it. It would need to be someone who knows all about the database module.
 
 
 
=== Blog Assignment Type ===
 
'''What is it for?'''
 
Blogs are inherently user owned and driven by definition, however teachers would like to have a way to use blogs as assignments in their courses, comment, grade, etc.
 
A solution to this conundrum would be a new Assignment type that makes it possible for a student to easily submit the link one of their blogs to an assignment in a course, and have that blog entry privately graded and commented on by the instructor of that course. The blog entry itself remains public along with all of the student's other blogs. The tool would provide a time filter in the Assignment, so that the instructor could limit the blog entry posting dates that will be accepted (both to ensure 'fresh' entries and to keep the list of entries the student chooses short for frequent student bloggers).
 
I suggest a blog assignment type that functions as follows:
 
'''Teacher:'''
Teacher creates a blog assignment, this puts a grade in the gradebook and provides an assignment link for students to see.
 
The teacher can configure options to allow a blog entry posted in the last X days to be used for the assignment.
 
'''Students:'''
When students enter the assignment they see a drop down menu of all their current (blog entries posted in the last X days as chosen by the teacher) blog entries, and they choose one to satisfy the assignment.
 
'''Assessment:'''
The teacher goes in to the Assignment, views the blogs that are linked from the assignment, leaves comments (the comments only show up to the student when they view the blog assignment), and gives a grade.
 
The blog entries themselves stay on the student's blog, only the grades, links, and comments go in the assignment (optionally the assignment scrapes the student's blog and loads the full text in to store for backup and restore).
 
 
=== Moodle IDE ===
The objective of this project is to create a Moodle IDE based on Eclipse so that new developers can get to develop Moodle in less time.
 
'''Ideas'''
* First release: Eclipse + Plugins + Moodle splashscreen + CVS Configuration + Apache + MySQL + Moodle CVS code. All preconfigured and ready out of the box.
* Future
** Every X time, it checks for new versions of Moodle and packs it.
** Checkstyle plugin alike fo follow Moodle Design Guidelines.
** Development help (can be wiki pages to navigate offline)
 
'''Mentor''':  [http://moodle.org/user/view.php?id=153093&course=1 David Horat]
 
'''Download''': [http://mirrors.davidhorat.com/moodle/MoodleIDE-latest.zip MoodleIDE-latest]
 
=== Moodle Multisite ===
The objective of this project is to make Moodle able to manage several Moodle sites with just one source code. This will help administrators of several sites to centralize code upgrades and ''technical problems''.
 
'''Ideas'''
* First release
** config.php will be a proxy that executes the concrete config file depending on the current url.
** The concrete config file will be under the directory /config and will have an arbitrary name created by the user.
* Future
** Create an XML file with all the pairs URL(n)-ConfigFile(1).
** Every time this file changes, it should be created the config.php file proxy.
** Develop a Web frontend to change this file, that can be just accessed by the super admin in every site.
 
'''Mentor''':  [http://moodle.org/user/view.php?id=153093&course=1 David Horat]
 
==Google Summer of Code 2006 Projects==
#[[Student projects/Presets for Database module|Presets for Database module project notes]]
#[[Student projects/Integrated bug tracker|Integrated bug tracker project notes]]
#[[Student projects/AJAX course format|AJAX course format project notes]]
#[[Student projects/Admin page cleanup|Admin page cleanup project notes]]
#[[Student projects/Global search|Global search project notes]]
 
 
==Other Projects==
 
#[[Student projects/ical|Calendar export to iCal]]
 
[[Category:Developer]]
[[Category:Project]]

Latest revision as of 03:05, 10 January 2012

This development related page is now located in the Dev docs.

See the Projects for new developers page in the Dev docs.