# IUP Portfolio Functional Specifications

IUP Portfolio is an education platform for Swedish schools, focused around the students' individual development plan ("Individuell utvecklingsplan", IUP) and learning portfolio.

## License

IUP Portfolio is published under the "GNU General Public License V2".

## Technical

IUP Portfolio is a web application developed in PHP5 / MySQL5, and can be hosted on any operating system capable of running a web server, a PHP5 interpreter and a MySQL5 database system.
Typical running environments are:
* LAMP (Linux + Apache + MySQL + PHP).
* FAMP (FreeBSD + Apache + MySQL + PHP).

## Application definition
### What is it?

In 2006, the Swedish government created a new law, saying that every Swedish pupil in K-12 schools must have an "individual development plan". This plan contains the goals that will be created in connection with parent/teacher/pupil talks that are held two times a year.
IUP Portfolio is meant to serve as an online plan repository so that all parties are able to access the document at any time and follow up on the goals that were created.

### Purpose

IUP Portfolio has four different user roles, meaning, different kind of users which are able to do different things. Here are the functions allowed, per user role:

#### Pupil or parent

* Front-end authentication with a login or logout box.
* Plan "one-year" view.
* Plan "one-semester" view, with the possibility to validate and comment the data entered by the teacher.
* Portfolio view, with access to the three subdivisions (Documents or pictures or media).
* Portfolio document view.

#### Teacher

* Front-end authentication with a login or logout box.
* Plan summary view for all of his students, for a year.
* Plan "one-year" view for a single student.
* Plan "one-semester" view, where the teacher can edit text fields with what was agreed upon during IRL talks with the pupil.

#### School administrator

* Front-end authentication as any of his school pupils / teachers.
* Back-end authentication with a login / logout box.
* User Management.
** Plan Management.
** Portfolio Management.
*** Document Management.
*** Picture Management.
*** Media Management.

#### Administrator

* Front-end authentication as any pupil, parent or teacher.
* Back-end authentication with a login / logout box, or as any school administrator.
* User Management.
** Plan Management.
** Portfolio Management.
*** Document Management.
*** Picture Management.
*** Media Management.
* Admin Management.
* School Management.

## Application models
### Designer's model
#### Front-end

* User secured login.
* User user interface.
* User logout.

#### Back-end

* User management.
** User administration (Creation / Modification / Deletion). A user creation / deletion automatically creates / deletes a plan.
* Plan management.
** Plan administration (Modification).
* School management.
** School administration (Creation / Modification / Deletion).

#### Entities

* User : A user is an entity that can authenticates itself on the IUP Portfolio system, and can interact with the website.
* Plan : A plan is a static entity linked to a "Pupil-Parent" User, and accessible to all user roles.
* School : A school is a static entity linked to a "Teacher" User, used as a safeguard during the registration of new users.

### Programmer's model
#### Entities

* User
** First name.
** Last name.
** Sex.
** Age.
** Address.
** Role.
** School.
** Plan.
* Plan
* School
** Address.