Please help with this project

megavan

Disciple
It's a test paper submission system wherein each student will have an account of his own logging into which he'll be shown the test papers he's still to write for the different subjects he has as part of his course and the grades he's been given on the ones he already has. Each of the different subjects of the course will have an account of its own. The professors can log into account of the subject(s) he's responsible for and will be shown the papers he has left to correct along with the student IDs/names (clicking on which he should be shown the answer paper with a field for entering the grade) , the IDs/names of students who have yet to submit the papers (he should be able to send a reminder to those in this category) and also the IDs/names of students whose papers have already been corrected along with their grades.
I know a bit about frontend development so it's in the backend where I need help. So please tell me atleast where to start :no:
 
megavan said:
It's a test paper submission system wherein each student will have an account of his own logging into which he'll be shown the test papers he's still to write for the different subjects he has as part of his course and the grades he's been given on the ones he already has. Each of the different subjects of the course will have an account of its own. The professors can log into account of the subject(s) he's responsible for and will be shown the papers he has left to correct along with the student IDs/names (clicking on which he should be shown the answer paper with a field for entering the grade) , the IDs/names of students who have yet to submit the papers (he should be able to send a reminder to those in this category) and also the IDs/names of students whose papers have already been corrected along with their grades.
I know a bit about frontend development so it's in the backend where I need help. So please tell me atleast where to start :no:

hey, my first post in brand new TE :D

now, can you please elaborate what exactly you want help in? from what i gathered, you are worried about doing backend development. is that it? waiting for reply....
 
Well basically how to go about it, the different languages / softwares I'l require and an overview on how they'l be working together.
And thanks for the welcome :)
 
megavan said:
Well basically how to go about it, the different languages / softwares I'l require and an overview on how they'l be working together.

And thanks for the welcome :)

hmm, i will try to be as detailed as possible.

first of all, there are 2 major preveland technologies you can utilize to develop a complete software architecture. and you can mix and match between them also.

for frond end, you can go for either a Web based GUI or a Application based GUI.

If you choose to implement a Web based GUI then you have a lot of choices:

  • PHP5: the easy to learn and implement PHP. this has developed into a very powerful platform and in its latest incarnation, it has acquired Object Oriented (henceforth OO) characteristics so you are given the oppurtunity to really organize the code and develop it in a modular and extensible fashion (something which was greatly amiss in the previous versions and therefore required the use of file includes etc.)
  • .NET: another platform which has a lot of future aspect (meaning doing this project will actually benefit you a lot down the line) This has Microsoft's push behind it and from the looks of it, M$ is weaving this technology deeper and deeper into the inards of Vista and that can only mean only one thing: more demand for developers adept in .NET and associated technologies.

    The Web GUI part is dealt with using a combination of technologies. The mark up language is called ASP.NET and it is basically a super refined form of the classic ASP. However, now the technology is not only mature, but also draws heavily from OO concepts which only lend to making the life of a software programmer that much easier. With the latest introduction of concepts like "ServerControls" (ok not that recent :p) and "MasterPages" some of the major concerns of any software developer while developing the software are dealt with.

    Also another neat feature is code behind. That means, a transparent and easy to use interface for separating code from "UI" elements is given (and used by default.) And that only HELPS irradicate sleepless nights due to the nighmarish problems which happen because of spaghetti code (mixture of UI + logic code = :huh: )

    Ofcourse, you are not limited to any one language to develop the code. You have choices between C#/VB.NET/Java.NET etc. However, amonst them, C# (pronounced C Sharp) is most prominent due to the familiarity with C/C++ Overall the technology is easy to learn and the curve is not as steep as it is in case of Java (and sons :p)
  • Java/JSP: The third and most prominent (as well as recommended choice) would be a combination of EJB/JSP/J2EE/Java 2. This is a trialed and tested method which has proved its worth over time. Many mission critical applications are based on this very architecture. The technical soundness also lends itself to easy implementation of 2, 3, n tier applications (like UI + Middle-level-logic + Database access and abstraction)

For developing a application based GUI, the technologies are also similar. But they are a bit more mature (and user friendly) compared to similar offerings for Web GUIs. This is because Application based GUIs are legacy, meaning they came first and therefore enjoy maximum software and WYSIWYG support (what you see is what you get) from the various IDEs (Integrated Development Environments.)

I am listing a few links which will hopefully help you out:

For Java:

Tutorials: The Java™ Tutorials

Main Site: Java Technology

JDK download: Java SE Downloads

J2EE: Java EE Downloads

A very popular IDE for Java: Eclipse downloads home

For .NET:

Mother of all sites: Microsoft Corporation

.NET 2.0 SDK: .NET Framework Developer Center: SDKs, Redistributables & Service Packs (you can use this to easily do development in ASP.NET, C#, etc.)

Visual Studio IDE (the best IDE in town for .NET): Visual Studio Express (these are the express editions. will serve wonderfully well for learning the technology.)

For PHP:

Mother: PHP: Hypertext Preprocessor

PHP downloads: PHP: Downloads

Loads of resources: PHP Editor Review - PHP IDE

For backend development (and maintaining the cost low) the choices boil down to choosing one of the many freely available high quality databases.

Amongst them, MySQL stands out. It has been around for a number of years now and most recently (with the introduction of version MySQL 5) a lot of features have been added (most prominently, Stored Procedures, triggers, etc.) This brings MySQL up to the level of many commercially available database servers (in terms of features atleast.)

Links:

you know what: MySQL AB :: The world's most popular open source database

Downloads: MySQL AB :: MySQL Downloads

Documentation: MySQL 5.1 Reference Manual :)P i know its long, but its worth every page :D)

Back end logic code programming is best done in a OO supporting language. Till date, C#, Java, COBOL, etc etc have been used in various incarnations to program the back end logic. However, because THIS code is responsible for driving most of the business core, it requires a lot of experience to be able to fully grasp the situation and code accordingly. As they say, Rome didnt get its KFC in a day! :tongue:

My advice for you:

I suggest you implement a 2 tier architechture using a technology like .NET and use the easily available Express IDEs to do it. This will eliminate some of the learning curve associated with grasping the technologies and will allow you to focus on writing code, and NOT trying out which configuration file goes where. Once you have learnt the basics, the whole sky is yours and you can explore and shift to which ever technology you deem fit for your career.

Now I hope this helped.....Take care and dont frown to ask more queries.....

Here to help

Karan
 
^^ Well Karan has explained almost everything about the technology aspect. U can choose any.

If you want to use Open Source then i can help you with LAMP platform. This can be implemented very easily and its simple to code in Perl/PHP. I am not good at HTML part so otherwise i can help you with how to go about the project, if u choose PHP/Perl with MySQL as ur platform.

Also is this project for ur use or for some organisation, cause using Open Source will help u with cost, cause there wont be any cost :p

So if u know any of the technologies which karan has pointed out or are going to learn them then please let us know , we will be glad to help u.:)
 
Thanks loads for all the help.
But since I'm a big noob of web development except for knowledge of basic web design (html, javascript, etc) and a bit of ASP , a brief guide on implementing each of the functionalities I've mentioned in my first post would be much more helpful.
Like to start with, how is creation of different accounts for each of the students nd subjects done ( I assume it will be similar to an email mailbox). and then where will the answer papers the user types in and submits be stored..and how will the paper checkers log in to a particular subject account and be shown the answer papers submitted for that subject and the like.
:huh:
 
See what you can do is use the DB power to store everything... like Questions and Answers.. Obviously you will need to spend some time on the structure and all....

Student DB - Student - Username

- Pass

- Paper1status

- Paper2status

- etc

Professor DB - Professor - Name

- Desig

- Subject

- Paper1status

- etc

Also you can now pull out data from both the databases to get ur data.

Be a bit more specific, like we start with how many papers, subjects , questions, answers...subjective or MCQ ??? etc etc
 
okay i'll try going through it again :
Student side:
-Each of the students will have their own account.
-When they login, they'll be able to select from the subjects that they have (different users will have different subject choices depending on their current
semester).
-Once they select the subject, they'll be shown
(i) links to test papers they have yet to write (clicking on which they'll be taken to a new page with the questions and text fields for the answers) and (ii) test papers they have written already but not yet corrected (clicking on
which they'll be taken to a new page and informed about the pending evaluation of that paper) and also
(iii) papers written and corrected (clicking on which they'll be shown their grade and date of submission /correction etc)

Subject side:
-each of the subjects will have an account of its own.
-the professor for a particular subject will login to that subjects account.
-once inside they'll be shown
(i) the ID nos/ names of students whose papers are left to be corrected (newly submitted ones will be added to this list) clicking on which they'll be taken to a new page displaying the answer paper and a field for entering the marks / grade,
(ii) IDs / names of papers already corrected clickin on which they'l be shown the grade and dates of submission / correction and also
(iii) IDs/ names of students yet to submit their papers. They should be able to
send a reminder to these students

My current knowledge base which may be helpful for this : html, javascript, bit of asp, sql, c / c++, java from the top of my head

So where will the Q papers, answer papers, the grades etc be stored (a db i
guess but which one as i'm not aware of sql being able to do all this ) and how will they be retreived and also how will changes be reflected in each of the accounts.

:sos:
 
megavan said:
okay i'll try going through it again :
Student side:
-Each of the students will have their own account.
-When they login, they'll be able to select from the subjects that they have (different users will have different subject choices depending on their current
semester).
-Once they select the subject, they'll be shown
(i) links to test papers they have yet to write (clicking on which they'll be taken to a new page with the questions and text fields for the answers) and (ii) test papers they have written already but not yet corrected (clicking on
which they'll be taken to a new page and informed about the pending evaluation of that paper) and also
(iii) papers written and corrected (clicking on which they'll be shown their grade and date of submission /correction etc)

Subject side:
-each of the subjects will have an account of its own.
-the professor for a particular subject will login to that subjects account.
-once inside they'll be shown
(i) the ID nos/ names of students whose papers are left to be corrected (newly submitted ones will be added to this list) clicking on which they'll be taken to a new page displaying the answer paper and a field for entering the marks / grade,
(ii) IDs / names of papers already corrected clickin on which they'l be shown the grade and dates of submission / correction and also
(iii) IDs/ names of students yet to submit their papers. They should be able to
send a reminder to these students

My current knowledge base which may be helpful for this : html, javascript, bit of asp, sql, c / c++, java from the top of my head

So where will the Q papers, answer papers, the grades etc be stored (a db i
guess but which one as i'm not aware of sql being able to do all this ) and how will they be retreived and also how will changes be reflected in each of the accounts.

:sos:
will reply in detail to this tomorrow..... now go to sleep :p
 
megavan said:
So where will the Q papers, answer papers, the grades etc be stored (a db i

guess but which one as i'm not aware of sql being able to do all this ) and how will they be retreived and also how will changes be reflected in each of the accounts.

Use the DB to store everything re... Even TE uses DB to store all the posts...so DB can very effectively store everything.

SQL is the language the DB understands. U can use any DB, but MySQL is free and very good.

Use the DB to store Questions, Answers and all data and then dynamically generate the HTML pages. I u want i can code some part of all this like say the student part in Perl/MySQL , but it will take some time coz currently my server is down for atleast 1 week.

I would say spend some time to design a DB structure and rest is going to be pretty easy in 3 steps -

1: Pull out data from DB

2: Put them all together

3: Generate the HTML pages dynamically

I know it sounds difficults but believe me you will learn a lot if u indeed do this project.

EDIT : Had an Idea..

Just had idea about question paper storage in DB

Do like this

Create a Table QuestionPaper having approx these files.

ID Question1-5 Question5-10 Question10-15 etc .... etc....

1 Q1:Q2:Q3:Q4:Q5

2

3

where 1,2,3 are the question paper numbers and storing 5 questions in one field will ultimately reduce some time and help in proper storage. If the number of questions are less u can resort to individual questions. Also since the questions are seperated by ":" they can be easily recognised by any lang u use.

Create a table named Students having approx these fields...

ID Name Password Qpaper1 Qpaper2 Qpaper3

1 Josh xxxxxxxx 40 n p

where Name is student name , Password is xxxxxxx

now Qpaper1 he scored 40 marks - i.e. the paper was solved and checked

Qpaper2 status is n - i.e. he did not solve the paper

Qpaper3 status is p - i.e. he solved it and its pending for checking

Think on these lines and you can easily build some logic.
 
So Mysql for the database and asp.net for the pages then? will these two be all that'l be required? And please tell of an easier alternative if its there.
Looks like I'hv got a lot of learning to do ahead :(
 
Yup that would do i think.

But i would prefer u use LAMP . i.e. PHP/Perl/Python with MySQL. If u are good at any one language then learning another one will hardly take u one month max.
 
Josh said:
Yup that would do i think.
But i would prefer u use LAMP . i.e. PHP/Perl/Python with MySQL. If u are good at any one language then learning another one will hardly take u one month max.

Why do you recommend php over asp? I do know it's free and cross platform but does it have other advantages? And more importantly will it make the job easier:D
 
^^ I recomment PHP/Perl/Python coz i program in those languages. It wont be much different from ASP. But i would prefer Open Source languages anytime over ASP.

If you want i can post some code snippets here if u are interesed in programming in PHP/Perl.

Otherwise you start learning ASP. Also u will need a server to host your programs. Otherwise better option is download VMWare Server and install Windows 2000/2003 and also MySQL and try ur hand at running the programs and check them out on your browser.

Any help post here. But i dont know ASP but i will try to help u with other setup :p
 
I rushed through the posts and many here have already given much detailed guidelines.

In my opinion you should split the db in following tables

-user(have simple login and pesonal details here)

-student(

-user_id (from user table)

-course_list(courses he has opted for,course_ids)

-faculty

-user_id (from user table)

-course_list(courses he'll be handling, course_ids)

-courses

-course_id

-some other details, you can also add who is eligible for that, such as some one should clear other course before he can join this.

-questions

-Question_ID

-Question

-Choices

-Choice_ID

-Question_ID

-Qpaper_set (to categorize question papers)

-Choice_text

-Right/Wrong ( U can use this to evalute if more than one answer is right)

-TestLog

-student_id

-course_id

-Question_ID

-Choice_ID

- Test

-test_id

-student_id

-score

*** I'll leave this part unfinished as i do not know if this is an objective test***

More things can be added. I'll look upon it again after reading the thready completely...just being lazy
 
megavan said:
Why do you recommend php over asp? I do know it's free and cross platform but does it have other advantages? And more importantly will it make the job easier:D

I second Josh! php is not only free but its easy to use, much poweful than ASP. As of .net...it takes you through 100s of unnecessary hassles. I would say stiuck to ASP or PHP...its a simple project. involving .net will only complicate stuff for you.

Its faster than ASP. If you can put little more effort and use smarty's classes, you can really make an application with professional look and feel.

MySQL and php thread together nicely and should be the best combination. however if you're ever planning to put this thing in production environment, give pgsql a shot...its much better than mysql but hardly used.

Another thing. make use of classes with functions to interact with database. dont write queries in every other page. keeping them together will allow you to change database with least effort in changing queries.

Apache/php and mysql are fairly easy to setup under windows. and work better than IIS. i would strongly recommend that.

Wish you all the best :)
 
I have designed a db of my own and I think it's somewhat like what you hav posted here. Will post it here later.
And is there a way to disable copy / paste while typing in the answers in the text field? Otherwise someone can bring the answers on a cd etc or have it saved on the pc prior to the test and just copy them into the answer fields.:(
 
Also is there a way to restrict the user to be able to do almost nothing else on the pc once he logs in except for whatever he can in his account for increased security? As even if copy/ paste is disabled he can still open up some file with the answers and just type them in.
 
Yup u can disable through Java scripting. But still there are lots of ways one can send answers... POST/GET requests...

I would suggest u go with multiple choice radio buttons...
 
Back
Top