I'm trying to figure out how I could create a custom workflow for a virtual "classroom" environment that would be based on sequential activites that the student must follow.

Basic concept:

The instructor would have daily/weekly assignments for the student to complete that would have to be accomplished in a specific order before successive assignments would become available.


Monday - Student has to download reading material from a document library.

Tuesday - Student answers questions pertaining to the reading material (possibly in a document they upload, form/survey they fill out, etc.)

Wednesday - Student performs additional work relating to weekly subject material (lab work with small group - possibly using a workspace subsite permission-based for them and their group members - completed by submitting collaborative document, survey, etc.).

Thursday - Additional labwork (same as above)

Friday - Quiz on subject matter for the week.

Each section (Monday-Friday) can not be completed (or available as an option) before the previous section has been completed (logged by submitting documents, quizzes, surveys, etc.).

What I'm trying to figure out is if workflows will even work for this, or if I should create a custom application (hosted in SharePoint) that will take care of this for me.

If a custom workflow would work, how would I go about designing it I want to be able to leverage the concept of "permission trimming" in SharePoint so that when a student uploads a resource that they will only be able to view their own work and not another student's (aside from the collaborative work they would perform in groups). The workflow would also have to track what they've accomplished at any given time so that the option to move on to the next task would only show up if the previous one had been completed. Additionally, upon grading by the instructor, the student will be able to view what they got on the assignment (theirs only - they wouldn't be able to view another students grades) either by a list item (targeted audience concept applied to announcments or a document library), or accessing a "summary" area that details progress throughout the class.

I know I can do all this in a custom web application, but I'd really like to be able to work with some of the concepts that SharePoint has to offer to deal with this. I'm very "wet behind the ears" when it comes to workflows in SharePoint so I'm just not sure how to begin on this since there aren't enough advanced options in designing them through the SharePoint Designer application.

If anyone has any thought, suggestions, or starting points for me to look at on this, I'd really appreciate it.

Thanks in advance for any help offered,

- Dink

Re: SharePoint - Workflow How do I? (ceating custom sequential workflow)

Scott Wickham


There are probably a number of ways you could approach this. I think a lot of the concepts you mentioned should be possible within SharePoint using Workflows. You could start by setting up a separate subsite for each student. That makes security much easier to control/segregate, since by default you would grant each student access only to their own site. Then you could set up "lab" subsites where multiple students could collaborate together on projects.

Or...you could set up a site for each class, and let all students in that class have access to the class site. The benefit of this is that all students are now working within the same space and access to shared documents is easier to set up...but the downside is you have to spend more time and caution to apply granular security permissions to individual documents and list items in areas where you would only want each student to see their information. For example, you could set up a Grades list where you entered each student's grades for each assignment as an individual list item. Since all students would be accessing the same list, you would have to apply permissions on a list-item-by-list-item basis (e.g., John Smith can only see list items that he has been granted permissions on...and not any list items assigned to other students). Or...you could set up a separate Grades list for each student. The upside would be easier permissions control but the downside would be that the instructor would have to go to a separate list to enter each student's grades (vs. entering all grades in a single list). So you can see that many options are possible, you just have to weigh the tradeoffs of usability vs. administrative overhead vs. security. One issue to consider with administrative overhead is with using many sites or lists...one for each student or class...whenever you make structural changes to one list or site, you will want to propagate those changes to all similar lists/sites. There are some third-party tools you can buy to handle this, and ways you can write code to handle this yourself, but it's something to consider. When you combine students/classes/etc. in a single list for each type of object, you just make the structural changes to one list/site/document library/etc. and your done. However, as mentioned before, you have to be much more careful to apply security permissions correctly because all students will be sharing the same list/site/etc.

You could create a workflow based on the "repeating patterns" you see in the way students receive and complete assignments. For example, if students do the same kind of work each week...e.g., Monday=homework, Tuesday=quiz, Wednesday=Lab, etc..., then you could set up a "Weekly Student Coursework" workflow. You could create a "Weekly Student Coursework Tracking" list that would have one list entry for each student for each week in the semester. Then you could run your "Weekly Student Coursework" workflow on each week's entry in the list. The workflow would manage each student's weekly coursework on a week-by-week basis. On day one, you could have the workflow assign a "Complete week 12 homework" workflow task to the student. The student would be alerted of the new task by email. The workflow could have also copied the actual Week 12 homework assignment into their "Homework" document library at the same time that it locked down the Week 11 homework assignment from further editing. I believe you could then track check-in on the homework assignment so that when the student checked the homework back in, it could reactivate the workflow (but I'm not sure about this...haven't done it myself). Either way, the student could also manually click on the "Complete week 12 homework" workflow task and mark it as Completed. This could then fire off two parallel events in the workflow...one task to the teacher for "Grade Week 12 Homework for John Smith" and another task to the student for "Complete Week 12 Quiz" (which is Tuesday's assignment). The workflow copies the quiz (or survey) to the student's work area...and on and on.

I think a lot of what you are trying to accomplish should be feasible using Workflow within SharePoint.