a design document for SparkEd V3
Graph Representation of how different entities relate to each other.
SparkEd is a software for organizing and presenting educational and training contents for delivery on most platforms.
The current implementation of SparkEd is documented here and the source code lives here.
There are many reasons that made us decide to re-write the SparkEd from scratch, Initially we got feedback from the reviewers at the University of Alabama and there were many issues in version1, we tried to work on most of them but some of the issues were at the core of the code base and this could affect much if we worked on them.
We decided to keep the codebase we had and maintain as we planned to rewrite everything and fix most of the issues.
some of the issues are the following:
- Security
- Perfomance
- Test
- Responsive design
These were the major problems we had that we couldn't address fully
You can read more about other issues here
As explained in the introduction SparkEd aims to solve the prooblem of content delivery and presentational of educational contents on most platforms and in remote areas.
SparkEd aims to be a platform that accomodates different institutions, this means that it doesn't matter whether you want to use in a school setup or in any organization that has and offers educational contents. We currently have the following structures:
This is designed for organizations whose contents are divided in higher level hierachy.
eg: university has schools then under a specific school there are different programs, then under a program there are courses which has units and topics which have resources.
This is a common implementation in most schools and organizations.
An ideal implementation for High-School(Secondary)
SparkEd uses MongoDB for Data storage and the following are the structure of different collections.
Collections
school
{
_id: String,
name: String,
code: String,
createdAt: Date,
createdBy: String,
}
program
{
_id: String
name: String,
code: String,
schoolId: String,
duration: String,
createdAt: Date,
createdBy: String,
}
course
{
_id: String
name: String,
code: String,
details: {
schoolId: String,
programId: String,
language: String,
},
createdAt: Date,
createdBy: String,
}
units
{
name: String,
topics: Number,
unitDesc: String,
details: {
courseId: String,
programId: String,
language: String,
},
createdAt: Date,
createdBy: String,
}
topics
{
unitId: String,
name: String,
unit: String,
resources: Array,
'resources.$': Object,
createdAt: Date,
createdBy: String,
}
resources Resources are basicall file objects that contain information about the files, these are the supported file types
- Videos(
mp4, webm
) - Pdf(
pdf
) - Image(
png, jpg, jpeg,
) - Audio(
mp3, ogg
) - Text(
txt
)
SparkEd is not meant to be a replacement for Moodle and this will remain the case, If you want to have a full fledged school management system, you might want consider Moodle or other options. The following are problems SparkEd doesn't solve
- Discussion or Forum between Instructors and Learners
- Institution or Organization management system
These will correspond with the indicated milestones here when done
The current solution is implemented and named as SparkEd
We will include new User Interface proposals soon here
The project scoping will be included here soon as soon issues are broken down into their specifics