{"id":19781991,"url":"https://github.com/sparkeduab/sparked-spec","last_synced_at":"2026-02-23T15:02:19.946Z","repository":{"id":99627538,"uuid":"185154533","full_name":"SparkEdUAB/sparked-spec","owner":"SparkEdUAB","description":"a design document for the new version of SparkEd ","archived":false,"fork":false,"pushed_at":"2019-06-26T14:43:30.000Z","size":73,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-19T13:41:59.411Z","etag":null,"topics":["design-specification","documentation"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SparkEdUAB.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-06T08:24:24.000Z","updated_at":"2019-06-26T14:43:31.000Z","dependencies_parsed_at":"2023-07-31T07:00:50.748Z","dependency_job_id":null,"html_url":"https://github.com/SparkEdUAB/sparked-spec","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SparkEdUAB/sparked-spec","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SparkEdUAB%2Fsparked-spec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SparkEdUAB%2Fsparked-spec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SparkEdUAB%2Fsparked-spec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SparkEdUAB%2Fsparked-spec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SparkEdUAB","download_url":"https://codeload.github.com/SparkEdUAB/sparked-spec/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SparkEdUAB%2Fsparked-spec/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29746499,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T07:44:07.782Z","status":"ssl_error","status_checked_at":"2026-02-23T07:44:07.432Z","response_time":90,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["design-specification","documentation"],"created_at":"2024-11-12T06:03:27.746Z","updated_at":"2026-02-23T15:02:19.929Z","avatar_url":"https://github.com/SparkEdUAB.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# sparked-spec\n\na design document for SparkEd V3  \n\nGraph Representation of how different entities relate to each other.\n![sparked-server](sparked-server.PNG)\n\n\n### Introduction\n\nSparkEd is a software for organizing and presenting educational and training contents for delivery on most platforms.  \n\nThe current implementation of SparkEd is documented [here](https://sparkeduab.github.io/sparked-manual/) and the source code lives [here](https://github.com/SparkEdUAB/SparkEd).\n\n### Motivation\n\nThere 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.  \n\nWe decided to keep the codebase we had and maintain as we planned to rewrite everything and fix most of the issues.\n\nsome of the issues are the following:\n\n- Security\n- Perfomance\n- Test\n- Responsive design\n\nThese were the major problems we had that we couldn't address fully\n\nYou can read more about other issues [here](https://docs.google.com/document/d/1yZQWqh9KWtOeGHgNknNGzYQCEZku9Ml2vPPExvn4PvA/edit?usp=sharing)\n\n\n### Goals\n\nAs 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.\n\n\n\n### Implementation\n \nSparkEd 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.\nWe currently have the following structures:\n\nThis is designed for organizations whose contents are divided in higher level hierachy.  \n\n**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.\n\n![higher-level](https://sparkeduab.github.io/sparked-manual/docs/assets/school10.png)\n\nThis is a common implementation in most schools and organizations.   \n\n![course-mid-lvel](https://sparkeduab.github.io/sparked-manual/docs/assets/school11.png)\n\nAn ideal implementation for High-School(Secondary)   \n![subjects-low-level](https://sparkeduab.github.io/sparked-manual/docs/assets/school12.png)  \n\n\n### Terminologies\n\n\n### Data Model \n\nSparkEd uses MongoDB for Data storage and the following are the structure of different collections.\n\n**Collections**\n\nschool \n```js\n {\n   _id: String,\n  name: String,\n  code: String,\n  createdAt: Date,\n  createdBy: String,\n }\n\n```\nprogram\n```js\n {\n  _id: String\n  name: String,\n  code: String,\n  schoolId: String,\n  duration: String,\n  createdAt: Date,\n  createdBy: String,\n }\n\n```\ncourse\n```js\n {\n   _id: String\n  name: String,\n  code: String,\n  details: {\n     schoolId: String,\n     programId: String,\n     language: String,\n  },\n  createdAt: Date,\n  createdBy: String,\n }\n```\n\nunits\n\n```js\n{\n  name: String,\n  topics: Number,\n  unitDesc: String,\n    details: {\n     courseId: String,\n     programId: String,\n     language: String,\n  },\n  createdAt: Date,\n  createdBy: String,\n}\n\n```\n\ntopics\n\n```js\n{\n  unitId: String,\n  name: String,\n  unit: String,\n  resources: Array,\n  'resources.$': Object,\n  createdAt: Date,\n  createdBy: String,\n}\n```\nresources\nResources are basicall file objects that contain information about the files, these are the supported file types\n- Videos(`mp4, webm`)\n- Pdf(`pdf`)\n- Image(`png, jpg, jpeg,`)\n- Audio(`mp3, ogg`)\n- Text(`txt`)\n\n\n### Non-Goals\n\nSparkEd 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. \nThe following are problems SparkEd doesn't solve  \n- Discussion or Forum between Instructors and Learners\n- Institution or Organization management system\n\n\n### Milestones \nThese will correspond with the indicated [milestones here](https://github.com/SparkEdUAB/sparked3.0-spec/milestones) when done\n\n\n### Existing Solution\n\nThe current solution is implemented and named as SparkEd\n\n\n### Proposed Solution \n\u003e We will include new User Interface proposals soon here\n\n\n\n\n\n\n### Scoping and Timeline\n\nThe project scoping will be included here soon as soon issues are broken down into their specifics\n\n\n### Impact \n\n\n### Risks\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsparkeduab%2Fsparked-spec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsparkeduab%2Fsparked-spec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsparkeduab%2Fsparked-spec/lists"}