Sie sind auf Seite 1von 41

Education Portal

Project Report
Guide : Prof. D. B. Phatak
Team Members:
Anamika Gupta Ankit Deshpande Ankit Singhaniya Aquila Soundarya Divyesh Dixit Harit Vishwakarma Jayashankar T. Kanika Goyal Mukul Yadav Neeraj Kishore Neha Singhal Pallav Dhobley Raghuveer Machiraju Shobhit Srivastava Sohil Jain

Mentors
Ishan Sodhi Anup Naik Deepak Jayanth Prathik Patodi Nitin Satpal Anjali Singhal Firuza Aibara

Abstract:

The purpose of the project is to address the critical subset of important issues, and adopting an approach to address these using a holistic intervention utilizing modern technology. It uses an ICT enabled process involving both synchronous and asynchronous

mode to actually reach out and engage a large number of our teachers, and through them, a much larger number of students. Indeed, actual involvement of these important stakeholders in the entire process, scaled to very large numbers using ICT, can be said to be a major contribution of the project. The web portal that is being developed serves as a one stop learning place for the student and teacher community by providing various kinds of learning materials.

Introduction:
There has been a phenomenal rise in the number of engineering colleges in India over the past decade. Over 6,00,000 students are now annually admitted to different engineering disciplines. There is an urgent need to enhance quality of education, given the relatively weak academic infrastructure, especially as regards to availability of qualified faculty. Under National Mission on Education, IIT has been organizing workshops on various topics over the years to train engineering faculty from such colleges and universities from all over the country. Henceforth many resources including video recordings, assignments, question banks created need to be made public along with discussion forum for their effective usage. Thus this portal serves as a platform for the hosting of all the content in a well categorized manner.

Description:
A Joomla based portal is implemented to achieve the targets in an effective manner. The portal supports the following major aspects of utilization: Topic-wise search and viewing of video content A very large collection of tutorials and projects for explaining subjects Topic-wise creation of quizzes Separate discussion forums for teachers and students Profile management for each registered user

Document Description:
Purpose of this document : To provide the technical description of the working of web portal Scope of this document :

The portal being released in open source, this document acts as a guide to the open source community who may be working on the portal (both enhancement or reuse) in the future Product used : Joomla 1.6 Content Management System (CMS) References : Help and Support included as a part of the web portal Abbreviations : CMS - Content Management System PHP PHP is Hypertext Preprocessor HTML HyperText Markup Language MySQL My Structured Query Language

Project Outline:
The work has been divided into 6 major modules: 1. Front-End Design and Quiz module 2. API design and Database Management module 3. Video Content Management module 4. User Management module 5. Resources Management module 6. On-Screen Editor module 7. Forum Management module

Related software or hardware:


Software/Languages : Joomla 1.6, MySQL, PHP, HTML, CSS, XML, GEDIT, GIMP Plugins : JUMI, Flowplayer, Co-design Scripter Module(Login Module), Kunena Forum v1.6 Template : CloudBase 2.0 Web Servers : RED5 RTMP server Operating systems : LINUX : Ubuntu 8.04.4 End-user characteristics : A User with basic Computer knowledge and Internet skills Scope for the future evolution of the project : More involvement of web community for the optimal maintenance of the ever growing learning resources

General Constraints:

Constraints encountered because of Joomla 1.6: o Less open source template availability leading to limited scope for the front end design o Difficulty in session maintenance for the users o Limited number of plugins available for Joomla 1.6 to meet the requirements of the project End-user constraints : o Javascript enabled browsers supporting CSS3, HTML5 and a minimum Flash Player version 8 Standards compliance : o Front End Design in compliance with Web 2.0 standards o Code structure has been maintained meeting the W3C standards Protocol requirements : o RTMP protocols for the streaming of video content Data repository and distribution requirements : o Hierarchal file structure for the maintenance of various resources : assignments, projects, tutorials, videos Memory Limitations : o Maximum upload file size is 5MB owing to php ini restrictions Goals and Guidelines *********** Working, looking, or "feeling" like an existing product : o The functioning of quiz module is inspired from BITSAT (Birla Institute of Technology Sciences Aptitude Test) Reason: BITSAT caters students all over India and provide them with questions chosen from a very large question pool. This is a timer controlled quiz with a feature of marking questions for review. Our quiz with a highly flexible selection process which include time of the quiz, number of questions, topic selection and many more strives to increase the user experience considerably. There is a scope for additional features like giving quiz in any order of priority of subject/topic. Development Methods : Incremental Development : The primary objective of this kind of implementation is to reduce inherent project risk by breaking a project into smaller segments and providing more ease-of-change during the development process.

System Architecture
Subsystem Architecture

Forum Management module:


The purpose of having a forum is to have an online discussion site where people can hold conversations in the form of posted messages. They differ from chat room in that messages are at least temporarily archived. The forum is made for people of almost all ages who have basic knowledge of computer and are willing to use forum for exchanging knowledge.

For implementing forum, we have used the 'Kunena 1.6 which comes under GPL/GNU v2 license. For the chat module we have used 'FreiChat 2.5 plugin ' under the same GPL v2 license Forums have some specific set of jargon associated with them. A single topic started is called a "Thread". Depending on the forum set-up, users can be anonymous or have to register with the forum and then subsequently log in in order to post messages. Usually users do not have to log in to read existing messages. Sub-system Overview : Kunena 1.6: This serves as the social forum solution for Joomla framework. Its prominent features include: o Full integration with Joomla including user Registration o Integration with Profile page o Better Interface and Design o Well defined access levels o Rich Text Editor - WYSIWYG Post Writing Editor o Forum Statistics, Polls o Full RSS Support for content sharing and export of any forum, topic o Forum specific search o Search engine optimized code and user friendly Uniform resource locator o Most popular topics view o Most popular post view FrieChat 1.6 plugin: Used for implementing chat in the forum. The chat utility has been restricted to the registered users only. The utility includes: o Frei Chat component: It helps in the integration of the Freichat with the joomla and in the creation of admin menu. o Frei Chat module: It is responsible for the AJAX Chat in forum. GD Image Library

Development method: Prototyping - A simple method of continuously developing, refining, demonstrating, testing and then implementing them into our project, step by step. User groups: The forum organizes the visitors and logged in members into user groups. Privileges and rights are given based on these groups. A user of the forum can automatically be promoted to a more privileged user group based on criteria set by the administrator. A person viewing a closed thread as a member will see a box saying he does not have the right to submit messages there, but a Editor will likely see the same box granting him access to more than just posting messages. An unregistered user of the site is commonly known as a guest or visitor. Guests are typically granted access to all functions that do not require database alterations or breach privacy. A guest can usually view the contents of the forum or use such features as read marking, but occasionally an administrator will disallow visitors to read their forum as an incentive to become a registered member. The user groups and associated privileges can be listed as: Guest: Can access to Forum

Can read Thread and comments Can Register Cannot post in forum

Student: Can access student forum Can create new Thread, comment on existing Threads, etc. Can subscribe (email) to Student forum post Really simple syndication (RSS) is possible Access to chat Teachers: Can access Student and Teacher Forum. Can Post in Student and Teacher forum e.g. create new Thread, comment on existing Threads, etc. Can subscribe (email) to Student/teacher forum post Really simple syndication (RSS) is possible Access to chat Can help student via replying Threads Editorial Group: The Editors are users of the forum who are granted access to the posts and threads of all members for the purpose of moderating discussion Moderate the student as well as Teacher forum. Stop spamming and spambot. Can ban any user. Editors also answer users' concerns about the forum, general questions, as well as respond to specific complaints. Common privileges of Editors include: deleting, merging, moving, and splitting of posts and threads, locking, renaming, stickying of threads, banning, suspending, un-suspending, unbanning, warning the members, or adding, editing, removing the polls of threads. Site Administrator: All privileges of editors. Add new editors. Validation of new teacher.

Manage the rules, create sections and sub-sections, as well as perform any database operations (database backup etc.). Make forum-wide announcements, or change the appearance (known as the skin) of a forum.

Access Levels

Constraints: The Frei chat 2.5 does not provide the functionality of making a user invisible on chat or to sign out from the chat. Interactions: Kunena takes the access levels from the Community Builder (CB) It takes the profile information and login and registration information from the Joomla Frei chat takes the online users information from CB Data Flow Diagrams: Future Scope: Implementing functionality of user invisibility and sign-out in chat. Enhancing WYSIWYG editor with more advanced features. Screenshots:

Front-End Design and Quiz Module: FRONT-END DESIGN Introduction: The frontend can be described as the part of the website which gets published. Its what the owner of the website wants the public or selected groups to see when they open the site in their internet browser. The goal of user interface design is to make the user's interaction as simple and efficient as possible i.e. user-centered design. Good user interface design facilitates finishing the task at hand without drawing unnecessary attention to it. Joomla, as with many other Content Management Systems (CMS) allows to select the level of interactivity between the site and the users of the frontend. Following features are provided it:- Usefulness, efficiency, reliability and user-friendliness. Sub-system overview: Template used cloudbase 2.0 (downloaded from www.cloudaccess.net). Designed and edited CSS (used class selector) to match with all modules. Website CSS in in compliance with WEB 2.0 standards and has explicit use of style-sheet and JavaScript files. Front-end design of QUIZ inspired from BITSAT (Birla Institute of Technology and Science Aptitude Test). Development method:

Incremental Development: The basic idea is to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental), allowing software developers to take advantage of what was learned during development of earlier parts or versions of the system. Explicitly declared CSS classes: Forms were to have a common design template, to achieve this .fieldsetFormat CSS class selector was used which. For aligning label, input and their span(which incorporate errors) specific classes were used for each of them.

Web-Pages are classified according to user type: PUBLIC PAGES:1. Home-page: It is the welcome page of the web-portal. It provides an introduction about the purpose and functionality of the website.

2. Quiz-Form: It is the form to customize the quiz according to user needs.

3.

Contact us: This page act as a communication medium between the site managers i.e. Editorial Group and Administrator, so that they can submit their suggestions, grievances or complaints via email.

PAGES VISIBLE TO TEACHERS: 1. Upload content: This form enables registered teachers to upload questions of multiple choice type of either single answer correct or multiple answers correct and also short answer type. They can also upload written content/resources of following types: Assignment, Project or Tutorial.

Following DFD shows content is managed:

2. Create Document/Edit Document: WYSIWYG Editor enable registered teachers to create HTML document and they save or upload them as .pdf files also.

PAGES VISIBLE TO EDITORIAL GROUP: 1. Review of uploaded questions and files: Members of the editorial group will review the questions uploaded questions and files.

CONTENT MODULE: * * * * * * Three stages of content flow: * Teachers Editorial Group Public Types supported: Questions(multiple choice questions, short answer questions), Files(Tutorials, Projects, Assignments) The details of files include size, title, system generated filename, type, keywords, creators and reviewers The details of question include code, explanation, type, time, complexity, rating, keywords, creators and reviewers Question with multiple images are supported Directory structure for files uploaded is as follows: * content/TYPE/USERID/TYPE.RES_ID.extension

WORK FLOW FOR

REVIEW OF QUESTIONS * * * * * * * * * Questions uploaded by a teacher are available to the editorial group for reviewing the question details Once a question has been reviewed by the editorial group, it is made available to the public through quizzes A user has the option to submit a question for review again, if he/she is unsatisfied with the question Such questions are available to editorial group to be reviewed again Once the question is reviewed twice, it cannot be marked again for review A member of editorial group can explicitly review any question from the database irrespective of its status Files uploaded by a teacher are available to the editorial group for reviewing the details Files created by using the online editor have to be explicitly submitted for review. Until then, the teacher can make changes into it Once a file has been reviewed by the editorial group, it is made available to the public

Once the file created using online editor is reviewed, it is converted into pdf

Following DFD how the Members of editorial board content

explains the review

PAGES VISIBLE TO ADMINISTRATOR: 1. List of question hit and question statistics: Its for the book keeping purposes, so that the administrator can keep track of the question database and can make necessary changes.

2. Keywords handling: Here the administrator can see all the keywords present in that particular portal and can ADD new keyword, REMOVE keyword or UPDATE keyword.

QUIZ-MODULE Quiz has been an important feature of the web portal, which act as a learning aid for the students to test themselves. Quiz-form is used to customize the quiz according to user needs. The user can give quiz of three types: By time, By number of questions, or By both time and number of questions. Note: time is in minutes. User can also customize the quiz as per various keywords (subtopics) for the given topic (In our case: C programming). Also three levels of complexity levels are there to select the difficulty levels of the quiz to be generated. Following DFD explains the interaction between the front-end and database.

PRIME FEATURES: * Instruction page at beginning of the quiz * Timer based on the time limit of the quiz * The user can easily access any question with the help of buttons with question numbers on left pane * Mark for review option to highlight the question * Colour scheme for Current, Answered, Un-answered, Marked Questions * Always show the count of unanswered questions * Display the score at the end of quiz * Display the correct answer and explanation along with the users response * Submission of questions for review to editorial group, if the user is unsatisfied with the answer

Video Content Management Module:


Introduction: The major purpose of this module is management of the video recordings and other streaming content in a categorised manner. Videos, we consider, are one of the highly contributing resource for the enhancement of the project as they interact with the users in an efficient manner. Hence proper maintenance and optimal utilization of the memory to store the content are the major concerns for this module. Unlike the normal video players, our module aims at effective usage of the content in a way to save the time of the user by displaying only some parts of a video as per the request of the users. Resources:

RED5 RTMP streaming server : This streaming server is used for achieving the purpose of starting a video from a specified time and playing it for a specified duration as per the requirements Flow player 3.2.8 a flash media player that fetches video content from a streaming server in flv or mp4 format jQuery library Development method: Incremental Development: The major task of the module is divided into smaller sub-tasks and these are achieved in a regular manner and then the outputs are integrated in an incremental manner. This approach helps in the reduction of critical risk of the module at a particular phase and ensures flexibility for changes in the sub-modules Features: The main features of this module include: Playing of only some parts of videos as per the request of the users and the keywords related to them Providing complete lecture galleries of full length videos of various topics and tutorials Building a hierarchal tree structure of the video content present, categorized according to the topics related Providing an on-page notes maker that helps the users to put down star points while simultaneously watching the videos, with an additional option to download the notes immediately as a text file to the local system Star rating is provided for the users in a 3 point system as Ok, Good, Excellent for the sorting of video content accordingly Interface for administrator is provided to add, update or delete data from the specified tables Challenges faced: Compatibility issues with the RED5 server and obtaining seek-time dynamically Database schemas: db_video_paths vid title path speakerid db_video_seektime title vid starttime endtime id count likes parentid db_speaker_details spkid speaker descriptions

int(11) varchar(100) varchar(200) int(11) varchar(100) int(11) Time time int(11) int(11) int(11) int(11) int(11) varchar(100) varchar(200)

primary key foreign key

foreign key primary key

primary key

Entity Relationship Diagram: Processing: The hierarchal tree structure is formed from the database and the keywords are selected by the user

According to the keyword selected, video parts with the start times and durations corresponding to the specified keywords and a list of related videos are fetched from the table. The star ratings of the videos are utilized here fetching the video details in the order of highest likes. According to the values fetched, the paths of the videos are fetched and sent to the RTMP server from where the videos are streamed according to the data retrieved The entire process specified is shown in the following Dataflow Diagram: Future plans of enhancements: An implementation of user specific favourites and customized playlist creation will bring in more advantages for the registered users and will provide enhanced user experience Implementation of the rtmp over http technology for video streaming would help in the improvement of the capability of the servers and support better functionality

Document Description
This document provides a detailed description of the back-end processes involved in getting the portal up and running. It gives an insight into the various database tables created, their schemas and application programming interfaces written to implement them. It also deals with the algorithms designed to fetch questions from the database to generate the quiz according to the various constraints.

System Overview
The open-source database management system used for the purpose is MySQL 5.0.51. The application programming interfaces designed to handle the database have been written in PHP. The content-management system used is Joomla 1.6

Design Considerations
Why PHP? PHP has been used for server-side scripting (instead of perhaps JSP) because Joomla is based entirely on PHP. Also, Joomla currently does not support any other RDBMS except mysql and mysqli. Therfore,

the APIs have been designed strictly keeping a Mysql database in mind. Thus, JDBC or ODBC connectors have not been used for connecting to the database. Table-Designs The tables have been designed with the Boyce-Codd Normal Form in mind. Out of the total of 13 tables designed, 10 are in BCNF. The remaining 3 tables are not in BCNF. The reason for their not being in BCNF is that some of their attributes are not atomic (Comma-Separated values have been used). However, there are no non-trivial functional dependencies in any of the tables.

Assumptions
The APIs have been designed with the assumption that the server on which they are deployed has the support of PHP 5.0 or later. The database management system would not be changed in the future. If such a migration is done, then, the APIs would need to be suitably edited.

Packages
1) php5 2) mysql-client-core-5.1 3) mysql-server-core-5.1 4) php5-mysql

Database Details :

Entity-Relationship Diagram

Table Schemas

TABLE : db_quiz_questions
Field Type id int(11) ,primary key ,auto_increment text varchar(1000) code varchar(1000) answers varchar(100) explanation varchar(3000) keywords varchar(500) type set('mcq','ma','sq') time float complexity set('easy','moderate','difficult') rating int(11) review int(2) reviewer varchar(40)

TABLE : db_quiz_options
Field id options Type int(11) varchar(1000)

TABLE : db_quiz_creators
Field id creators Type int(11) varchar(500)

TABLE: db_quiz_subtopic
Field uid qid Type varchar(40) , primary key longtext

TABLE : db_quiz_question_hit
Field qid times_selected times_answered Type int(11), primary key int(11) int(11)

TABLE: db_quiz_overall
Field uid qid Type varchar(40) , primary key longtext

TABLE: db_keywords
Field id increment name Type int(11) , primary key, autovarchar(40)

TABLE: db_resource
Field Type idresource int(11), primary key, autoincrement name varchar(500) filename varchar(500) size float(7,2) type enum('assignment','project','tutorial') reviewer varchar(500) uid varchar(40)

TABLE: db_resource_keyword
Field Type idresource int(11) ,foreign key references db_resource (idresource) idkeywords int(11),foreign key references db_keywords(id)
db_resource_author
Field idresource author Type int(11) ,foreign key references db_resource (idresource) varchar(200)

TABLE: db_speaker_details
Field spkid speaker description Type int(11) , primary key varchar(100) varchar(500)

TABLE: db_video_seektime
Field keyword vid starttime endtime count likes id parentid Type varchar(100) int(11) time time int(11) int(11) int(11) int(11)

TABLE: db_video_paths
Field vid auto_increment title path speakerid
Relevant Table Details : 1)db_quiz_questions : This table stores the details of the questions that appear in the quiz. The details include the text of the question, associated code, explanation( if any), correct answer, associated keywords, time( any one of 0.25,0.5,0.75,1,1.25,1.5,1.75 or 2 minutes), complexity, type(multiple-choice single-correct, multiple-choice multiplecorrect and short descriptive), reviewer and review(flag to check the status of the question). The 4 flags are: 0 : New Question(Not yet moderated by the editorial group)

Type int(11) , primary key, varchar(100) varchar(200) int(11)

1 : Moderated Question( Available to public in quizzes) 2 : Marked Question (Question marked by user to be reviewed by editorial group) 10 : Question that has been reviewed by the editorial group. Such questions cannot be marked again by the users NOTE : This table is not in BCNF as the list of keywords are mainted in the form of Comma-Separated values. 2)db_quiz_options : This table stores the options related to all the questions. 3)db_quiz_creators : This table stores the creators of all the questions. 4)db_quiz_question_hit : This table is meant to store the statistics related to the questions. It stores the number of times a particular question has appeared in quizzes and the number of times it has been correctly answered. 5)db_quiz_subtopic : This table stores the the ids of the questions that have been attempted by a particular user. This is done to ensure no repetition of questions for a particular user. 6)db_quiz_overall : This table stores the the ids of the questions that have been attempted by a particular user. This is done to ensure no repetition of questions for a particular user. NOTE:

The tables db_quiz_subtopic and db_quiz_overall are not in BCNF. The list of question-ids has been maintained as a Comma-Separated list. The difference between the two tables is that one is aimed at a sub-topic specific quiz while the other is for an overall quiz(including all keywords). This implies that the questions that have appeared in subtopic-specific quiz can appear again in an overall quiz. 7)db_resource : This table stores the details of the resources. These include their title, filename(system-generated), type(assignment, projects or tutorials), size, username of the submitter, the reviewer ( this field also serves as the flag to check the status of the resource(reviewed or not)). 8)db_resource_keyword : This is a mapping between the resources and their associated keywords. 9)db_resource_author : This table stores the details of the authors of the various resources. 10)db_keywords : This table contains the list of keywords. (The keywords are common to questions, resources and videos).

Algorithms
Question-Fetching Algorithm : The quiz can be generated on the basis of three constraints : 1) By time 2) By number 3) By both time and number

By Time : The total time required, the keyword(s) and the complexity level(s) are accepted from the user. Only the questions with flags as 1 or 10 can be selected for the quiz. The questions are then fetched from the database on the basis of flag and complexity levels. The total time is then divided equally between the various keyword-complexity pairs. This becomes a kind of quota for each of the pair. This is done so as to ensure equal division of questions beween various keyword-complexity pairs. From the result-set of the questions fetched from the database, one question is taken at a time. If a keyword match is found, that question is selected and its allocated quota is decremented accordingly. This process continues until all the quotas are exhausted. In case of shortage or insufficiency of questions for any keywordcomplexity pair, the remaining questions are selected from those keyword-complexity pairs for which questions are still available. The process continues until required time for the questions is obtained. If the questions for all the keyword-complexity pairs get exhausted and the questions are still insufficient, the algorithm returns false. By Number : The total numberof questions required, the keyword(s) and the complexity level(s) are accepted from the user. Only the questions with flags as 1 or 10 can be selected for the quiz. The questions are then fetched from the database on the basis of flag and complexity levels. The total number is then divided equally between the various keyword-complexity pairs. This becomes a kind of quota for each of the

pair. This is done so as to ensure equal division of questions beween various keyword-complexity pairs. From the result-set of the questions fetched from the database, one question is taken at a time. If a keyword match is found, that question is selected and its allocated quota is decremented accordingly. This process continues until all the quotas are exhausted. In case of shortage or insufficiency of questions for any keywordcomplexity pair, the remaining questions are selected from those keyword-complexity pairs for which questions are still available. The process continues until required number of questions is obtained. If the questions for all the keyword-complexity pairs get exhausted, the algorithm stops. By Number And Time Simultaneously : The total number of questions required, the total time required, the keyword(s) and the complexity level(s) are accepted from the user. Only the questions with flags as 1 or 10 can be selected for the quiz. The questions are then fetched from the database on the basis of flag and complexity levels. The questions for a particular period of time are generated using the principle of oscillation about the mean. The mean is obtained by dividing the time by the number of questions. If the average is not among the eight time values specified above, then they are incremented(if average is above 1) or decremented(if average is less than 1) to make them so. The question for the average time is then searched in the database. The average is repeatedly calculated and the question searched for the new average. Result-Generation : The result is generated by matching the response of the user with the correct answer as specified in the database.

The multiple-correct questions are checked by exploding both the response and the correct answers into an array and then matching them. The descriptive answers are string-matched for the correct answer. Thus, no extra white-spaces can be tolerated in the user's response.

Review uploaded files Module Introduction: The Files uploaded by the users cannot be shown to other users(public) directly since the files are not reliable . Therefore it is required to review the files and its details. This module provides this

facility so that the editor can review the files and update the details. Functional Requirements 1. Show the listing of all new files(files that have not been reviewed.). 2. Show the details of a particular file according to the user's selection. the following four functions: a) details are correct :if the details shown corresponding to the file are correct the editor can mark it as reviewed by this function. b) edit: if the editor feels that the details are not correct and they are to be modified so he will call to edit and then the details will be presented in a form so that editor can edit them and submit the details. c) If the editor is unable to say anything he can skip it. d) if the file is scrap or not usefull then it can be deleted. Design Considerations Assumptions and Dependency: assignments and tutorials are correspondig to at least one keyword. Whereas project is not corresponding to any keyword. For viewing the file the file shoud be available on the server(it should be in a public network i.e. Accessable to google docs.). The editor is responsible enough as he is being provided with the powerfull function of delete. General Constraints file size should not be very large. Only a limited type of files can be viewed by google docs. Detailed Design: flow of module Review Uploaded files------->show the listing of the unreviewed files. Click on the link of filename------>show the details of that file click on details are correct---->mark the file as reviewed. Click on edit--->show the details of file in a form on form submit(there are two possiblities) | |-----|------| | | content type Content type is changed is not changed (file is to be moved) (file not moved)

the path of file is content/type/uid/filename.ext so in the second case file is moved from content/old_type/old_filename.ext to content/new_type/new_filename.ext DFD

Snap shots This file listing is displayed when the user clicks on Review uploaded files

When use clicks on the link of filename to view the details the details are shown in following manner.

Here the user can opt anyone of the four options as per the condition. When the user clicks on any button except to edit appropriate action is done and message is shown to the user accordingly. When he clicks on edit the following form is shown:

If the file is an html file the content is shown in an editor. So that the user can edit the content once the content is edited and saved the html file is converted into pdf file.

Tools and softwares used: Joomla 1.6 ,PHP5,apache2,mysql5.0+,JUMI as a plugin to Joomla,

User management
Introduction:a) User management is a critical part of maintaining a secure system. Ineffective user and privilege management often lead many websites into being compromised. Therefore, it is important that you

understand how you can protect your websites through simple and effective user account management techniques.

Why should we implement User Management? Most security-conscious website today implement some form of authentication and authorization for accessing network resources. The benefits to this approach are clear user permissions can be verified before granting access to resources, and user activity can be monitored through various logging mechanisms. This solution is not without its limitations however. In typical authentication and authorization deployments, administrators have various options available with regard to how users are authenticated, but have little control over how often users are authenticated. User Management enables administrators to more granularly control the frequency of user authentication, allowing them to configure the ProxySG to ignore cached browser credentials and force the user to re-enter credentials, or to require more frequent authentication only if the user is accessing critical resources. This kind of flexibility allows administrators to implement authentication-based policies that more closely match their network security policies. The User Management logout capability also provides more secure control over the state of users. For example, when using IP authentication mode users are identified by the specified IP address until the IP surrogate time expires. If another person were to use that computer before the IP surrogate time expired, they would be treated as the original user. The common solution for preventing this scenario is to decrease the IP surrogate expiry time, causing the user to be challenged more often. User Management allows administrators to instead configure user log out based on inactivity timeouts, user access to a specific logout URL, or by manually logging out the user. For ease of use, logout capability is available though policy, the CLI, or the Management Console. Another key benefit of User Management is visibility into active user sessions. Using the Management Console and CLI, administrators can view all active users and filter display data by user, IP address, or realm for easier viewing. This can be useful for identifying the general login status of users or for making real-time decisions such as immediately logging off a user.

System Overview:We used Joomla version-1.6 as our framework for designing the user management .

For implementing user management we used the 'Community Builder' module which comes under GPL v2 license.We also used 'Core design', also under the same GPL v2 license , as our login module. Following are the features of 'Community Builder' ,which serves as our social community solution for Joomla framework, are : 1)Profile Page. 2)Registration code and validation 3)mailing solution. 4)Integratiion of forum modules. 5)ACL(access control levels) module that comes preinstalled with any standard Joomla 1.6.x package And features that we have not activated, but could be put into use, if required, are: 1)CB connections ,that is meant to form social connections as in 'Linked in', 'Facebook',etc. among the registered users on our portal. 2)PMS module responsible for personal messaging between registered users. 3)Community has got a nice framework that can be extended to develop further more plugins into our portal over period of time. Following are the features of 'modCdLogin module' that we have used for login module: 1)Attrctive login menu 2)Secured login checks against 'sql injection' , 'cross side scripting' to name a few. Design Considerations a)We need to understand the complete modular structure of each plugin/module before diving into its configuration to suit our need. For e.g.- 'Community builder' has got high modular structure which needs to be thoroughly gone through before any change in code is to be implemented to suit our needs. b)We need to decide and have a clear workflow and user access levels defined for each and every type of users. Assumptions and Dependencies: 1)requires Joomla 1.6.x framework 2)apache 2.x, PHP 5 or higher,Mysql, GD Image Library,sendmail program 3)Javascript enabled browser at user/client end, Mozilla 3.5.x and above version (or any contemporary web browser) General Constraints: 1)The whole system works on HTTP protocal with exception to the use of port 25(SMTP), port-465(mail). 2)Better bandwidth to further augment user's need of better loading time. Goals and Guidelines: 1)The whole concept behind Joomla 1.6.x framework is DRY(Do not repeat yourself). 2)The whole framework is modularized so that everything is loaded as and when needed, better described as user 'events' that 'trigger' a set of associated plugins to load.

3)Registration page has been kept neat and clean with a template design that matches the theme of other modules of our project. 4)The projects User management has been developed keeping in mind the User levels in most of the forums and similarly emulate that with Editor,Teacher and student type of users in consideration. Development Methods: 1)We followed a simple method of continuously developing,refining,demonstrating,testing and then implementing them into our project,step by step,also termed as prototyping. 2)The whole module of user management was divided into smaller parts of ACL,User registration,user upgradation and then accordingly applied and integrated together to work seamlessly with Forum module. Architectural Strategies: 1)As such,the whole project was based on joomla framework which was devloped using PHP (a server side scripting language) to produce a web 2.0 compliant dynamic website, so the project modules were necessarily being developed using PHP and javascript. 2)We have modified the saveRegistration() function in comprofiler.php file in our code to meet our required need of have 'teachers' to be activated by moderators even after email verification , which is not needed for 'student' user type. 3)We also have modified default.template.css file in order to implement fieldset theming throughout the portal. 4)We also have added custom fields to registration form ,which is accessible from admin section of comprofiler's field management. 5)In future development phase , completely ajax based user inputs can be used(HTML5 and CSS3) to get an even better UI , as users move to web browsers that uses these standards. 6)Joomla has its own error detection ,reporting and recover module that can be used with debugging mode to mitigate possible system crashes or warnings,same follows with PHP and mysql. 7)Our database management is handled using mysql.

Registration data flow diagram

System Architecture:

The system architecture of user management was divided into : 1)registering Users:- which is responsible for taking in new set of users into our portal and thus classifying them as either 'students' or 'Teachers'. 2)Upgrading user rights.:- which is responsible for upgrading already existing users to editor groups who are responsible for maintaining the quality of contents and decorum in the respective user's forums.Thus leveraging a selected set of user's to the right of being a 'moderator'. 3)Access control levels: which is responsible for defining access to different portion of portal to different set of users. 4)profile page:- One stop to obtain information about registered users. 5)Altering the database structure to suit our needs,and automate the process of duplication of registration data into all parallel portals.For e.g. Use of triggers, The above decomposition of user management helps achieve independent concurrent development of effective user management ,thus reducing the overall implementation duration. All the above decomposed component of user management are held together by database as common resource for this components to access and process data for the portal.

Apply for editor page

Validate new teachers

Policies and tactics: Exclusive use of open source systems and applications to develop our portal. Share and improve(Peer reviewed). Detailed system design: classification 1)Community builder 2)Core design scriptor login module 3)Joomla ACL component 4)PHPmailer 5)Joomla Database API 6)Jumi plugin Definition 1)Community builder is a module that provides following functionalities: PHP 5.2 User Profile Social solution through connections among users User upgradation workflow(hard code addition to code base) Secured registration Anti-spoof check E-mail cloaking Ajax E-mail and username checker Image validation and upload solution backend and frontend validation E-mail solution(some modification) Plugin Installation Work we did for modification:

Integrate custom Google secured Recaptcha Edited hard code for mail validation via Moderators. Change the interface to suit our website Templates. 2)Core design scriptor login module was chosen because secured login Attractive login effect using Jquery. 3)Joomla ACL Component has been used to Custom definition of User access levels 4)PHPMailer provides us with Common mailing solution for Joomla(sendmail,mail,SMTP) 5)Joomla database API satisfies following requirements: To have a common secured way to communicate with database (already existing in Joomla framework) Error recovery and reporting 6)Jumi plugin helped us develop our own application on top of Joomla framework , which were not offered by our standard plugin. Uses/Interactions: Forum module Synchronization of User data of Community builder module,kunena(forum) module,and core Joomla components. Scope for Improvement: 1)Upon going through Professional views and personal experience , We wish that in future the whole portal should be ported to Drupal 7 framework which of course is a more matured framework ideal for large portals such as ours,having an even more extensible framework and community. 2)More stable modules can be added as Joomla matures and becomes stable. Lines of code: 1200-1500 lines of code plus going through the whole joomla core framework API and codebase to modify it to fit into our requirements specification. Problems faced: Mail port restrictions that stretched our testing as well as implementation time, accompanied with various assumptions that we needed to make due to it.

Das könnte Ihnen auch gefallen