A learning management app

Overview

TECHADEMIA

Build Status Coverage Status

Techademia is a learning management system. It's an app built to help people learn various technologies from categories such as DevOps, Programming, Games Development and Design patterns.

A user can access the app either as a guest or as a registered user. Alternatively, a user can sign in via social media (facebook, twitter or github).

##Project Features:

  • User registration
  • Login via OAuth (facebok, twitter and github)
  • User profile Management (user settings)
  • User area (This is the user's space. Here, the user can manage his/her videos)
    • upload a youtube video using the video link
    • edit an uploaded video
    • delete a video
    • see all videos in a particular category
  • Guest users can only watch videos posted by other users

Techademia is an open-source project. Feel free to fork or clone it and make it better! If you intend to be a contributor, the following guide lines will be useful to you:

##Installation

git clone [email protected]:andela-fokosun/Checkpoint4.git

##Usage Make sure your .env file looks like this:

    APP_ENV=
    APP_DEBUG=
    APP_KEY=

    DB_HOST=
    DB_DATABASE=
    DB_USERNAME=
    DB_PASSWORD=

    CACHE_DRIVER=
    SESSION_DRIVER=
    QUEUE_DRIVER=

    FACEBOOK_ID=
    FACEBOOK_SECRET=
    FACEBOOK_REDIRECT=

    TWITTER_API_KEY=
    TWITTER_APP_SECRET=
    TWITTER_CALLBACK_URL=

    GITHUB_CLIENT_ID=
    GITHUB_CLIENT_SECRET=
    GUTHUB_CALLBACK_URL=

Run:

php artisan migrate

In this app, by design we have only four categories. You can run the seeder to populate the categories. You can use any approach that suits you. To run the seeder, run:

php artisan db:seed

or

php artisan db:seed --class=CategoriesTableSeeder

After that run:

composer install

To pull all the dependencies

Feel free to change the namespace to your desired namespace. Just run:

 php artisan app:name "Your namespace"

Ensure to run composer dumpautoload after running this command.

##Testing Run

phpunit

##Classes

- AuthenticateUser
- User
- Video
- UserRepository
- Videorepository
- HomeController
- UserController
- VideoController

##Final notes

PHP/Laravel + bootstrap is all you need!

see live demo

Happy coding!

Comments
  • Bump guzzlehttp/guzzle from 6.5.2 to 6.5.7

    Bump guzzlehttp/guzzle from 6.5.2 to 6.5.7

    Bumps guzzlehttp/guzzle from 6.5.2 to 6.5.7.

    Release notes

    Sourced from guzzlehttp/guzzle's releases.

    Release 6.5.7

    See change log for changes.

    Release 6.5.6

    See change log for changes.

    6.5.5

    No release notes provided.

    6.5.4

    No release notes provided.

    6.5.3

    No release notes provided.

    Changelog

    Sourced from guzzlehttp/guzzle's changelog.

    6.5.7 - 2022-06-09

    • Fix failure to strip Authorization header on HTTP downgrade
    • Fix failure to strip the Cookie header on change in host or HTTP downgrade

    6.5.6 - 2022-05-25

    • Fix cross-domain cookie leakage

    6.5.5 - 2020-06-16

    • Unpin version constraint for symfony/polyfill-intl-idn #2678

    6.5.4 - 2020-05-25

    • Fix various intl icu issues #2626

    6.5.3 - 2020-04-18

    • Use Symfony intl-idn polyfill #2550
    • Remove use of internal functions #2548
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies php 
    opened by dependabot[bot] 1
  • Bump guzzlehttp/guzzle from 6.5.2 to 6.5.6

    Bump guzzlehttp/guzzle from 6.5.2 to 6.5.6

    Bumps guzzlehttp/guzzle from 6.5.2 to 6.5.6.

    Release notes

    Sourced from guzzlehttp/guzzle's releases.

    Release 6.5.6

    See change log for changes.

    6.5.5

    No release notes provided.

    6.5.4

    No release notes provided.

    6.5.3

    No release notes provided.

    Changelog

    Sourced from guzzlehttp/guzzle's changelog.

    6.5.6 - 2022-05-25

    • Fix cross-domain cookie leakage

    6.5.5 - 2020-06-16

    • Unpin version constraint for symfony/polyfill-intl-idn #2678

    6.5.4 - 2020-05-25

    • Fix various intl icu issues #2626

    6.5.3 - 2020-04-18

    • Use Symfony intl-idn polyfill #2550
    • Remove use of internal functions #2548
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies php 
    opened by dependabot[bot] 1
  • Bump symfony/http-foundation from 2.7.48 to 2.7.51

    Bump symfony/http-foundation from 2.7.48 to 2.7.51

    Bumps symfony/http-foundation from 2.7.48 to 2.7.51.

    Commits
    • b67e5cb security #cve-2019-10913 [HttpFoundation] reject invalid method override (nic...
    • e8eb43e [2.7] Make CI green
    • b045094 [HttpFoundation] Remove support for legacy and risky HTTP headers
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump guzzlehttp/guzzle from 6.5.2 to 6.5.8

    Bump guzzlehttp/guzzle from 6.5.2 to 6.5.8

    Bumps guzzlehttp/guzzle from 6.5.2 to 6.5.8.

    Release notes

    Sourced from guzzlehttp/guzzle's releases.

    Release 6.5.8

    See change log for changes.

    Release 6.5.7

    See change log for changes.

    Release 6.5.6

    See change log for changes.

    6.5.5

    No release notes provided.

    6.5.4

    No release notes provided.

    6.5.3

    No release notes provided.

    Changelog

    Sourced from guzzlehttp/guzzle's changelog.

    6.5.8 - 2022-06-20

    • Fix change in port should be considered a change in origin
    • Fix CURLOPT_HTTPAUTH option not cleared on change of origin

    6.5.7 - 2022-06-09

    • Fix failure to strip Authorization header on HTTP downgrade
    • Fix failure to strip the Cookie header on change in host or HTTP downgrade

    6.5.6 - 2022-05-25

    • Fix cross-domain cookie leakage

    6.5.5 - 2020-06-16

    • Unpin version constraint for symfony/polyfill-intl-idn #2678

    6.5.4 - 2020-05-25

    • Fix various intl icu issues #2626

    6.5.3 - 2020-04-18

    • Use Symfony intl-idn polyfill #2550
    • Remove use of internal functions #2548
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies php 
    opened by dependabot[bot] 0
  • Bump guzzlehttp/psr7 from 1.6.1 to 1.8.5

    Bump guzzlehttp/psr7 from 1.6.1 to 1.8.5

    Bumps guzzlehttp/psr7 from 1.6.1 to 1.8.5.

    Release notes

    Sourced from guzzlehttp/psr7's releases.

    1.8.5

    See change log for changes.

    1.8.4

    See change log for changes.

    1.8.3

    See change log for changes.

    1.8.2

    See change log for changes.

    1.8.1

    See change log for changes.

    1.8.0

    See change log for changes.

    1.7.0

    See change log for changes.

    Changelog

    Sourced from guzzlehttp/psr7's changelog.

    1.8.5 - 2022-03-20

    Fixed

    • Correct header value validation

    1.8.4 - 2022-03-20

    Fixed

    • Validate header values properly

    1.8.3 - 2021-10-05

    Fixed

    • Return null in caching stream size if remote size is null

    1.8.2 - 2021-04-26

    Fixed

    • Handle possibly unset url in stream_get_meta_data

    1.8.1 - 2021-03-21

    Fixed

    • Issue parsing IPv6 URLs
    • Issue modifying ServerRequest lost all its attributes

    1.8.0 - 2021-03-21

    Added

    • Locale independent URL parsing
    • Most classes got a @final annotation to prepare for 2.0

    Fixed

    • Issue when creating stream from php://input and curl-ext is not installed
    • Broken Utils::tryFopen() on PHP 8

    1.7.0 - 2020-09-30

    Added

    • Replaced functions by static methods

    Fixed

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies php 
    opened by dependabot[bot] 0
  • edit video bug

    edit video bug

    http://techademia.herokuapp.com/video//edit

    results in query exception

    QueryException in Connection.php line 666: SQLSTATE[22001]: String data, right truncated: 7 ERROR: value too long for type character varying(255) (SQL: update "videos" set "description" = This course will give you a full introduction into all of the core concepts in C# (aka C Sharp). Follow along with the course and you'll be a C# programmer in no time! abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwqyzabcd efgh i jklmn

    , "category_id" = 3, "updated_at" = 2020-01-02 01:09:15 where "id" = 15)

    opened by fokosun 0
Owner
fokosun
PHP/Laravel/Lumen MySQL/MariaDB/Postgres PHPUnit/Codeception TravisCI/Github Actions
fokosun
Learning Management System made in vanilla PHP to learn core concepts and usage of some basic utils

Learning Management System Learning Management System made in vanilla PHP to learn core concepts and usage of some basic utils. Report Bug · Request F

TitansLab 1 Mar 30, 2022
This app is designed to help Romanian teenagers and adults with learning

This app is designed to help Romanian teenagers and adults with learning. The app has a lot of good resources to support students in every possible way. The main resource we have are high school lesons. ??

StudentApp 3 Apr 27, 2022
DooTask is a lightweight open source online project task management tool that provides various document collaboration tools, online mind mapping, online flowcharting, project management, task distribution, instant IM, file management and other tools.

DooTask is a lightweight open source online project task management tool that provides various document collaboration tools, online mind mapping, online flowcharting, project management, task distribution, instant IM, file management and other tools.

kuaifan 3k Jan 5, 2023
A simple blog project I built when learning Laravel 8

Harmonify Blog Disclaimer: All users data previewed on the image are fake data generated with FakerPHP. Introduction Harmonify Blog is a simple blog p

Wendy Surya Wijaya 3 Dec 9, 2021
Twitter clone - This project is conducted for learning purposes only

Twitter clone - This project is conducted for learning purposes only

Wanderson Renê 2 Jun 24, 2022
mini Project in Laravel and vue js. Real World Laravel 8x + vue js Dashboard.Task management and project management system

mini Project in Laravel and vue js. Real World Laravel 8x + vue js Dashboard.Task management and project management system. Dashboard features such as: Complete Dashboard, Custom Authentication, Email Verification, custom-login-register-forgot password (without jetstream).

Hasmukh Dharajiya 2 Sep 20, 2022
Laravel-Library-Management-system is nice to management library system...

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Eng Hasan Hajjar 2 Sep 30, 2022
Scrumwala: Your very own Scrum, Agile project management web app - built with Laravel

Scrumwala Your very own Scrum/Agile web app built with Laravel Features Create and manage projects with plan and work views Group issues in a project

null 255 Nov 2, 2022
A Powerful Laravel Help Desk and Lead Management App

Handesk Description Handesk has been created by our need (At Revo Systems www.revo.works) to have a powerful yet simple Ticketing system, we needed a

Jordi Puigdellívol 1.2k Jan 2, 2023
Health Management App for WTM Buea community to work on during the period of Hacktoberfest

Laravel web application developed by WTM Buea community members Health Care Management App An app that enables users and or patients to get consultati

Women Techmakers Buea 2 Oct 28, 2021
Hotel Management App using Laravel & Orchid for admin

Hotel Management System Installation Open a terminal session in the project's root. Install dependencies by running the command: composer install Run

null 1 Feb 8, 2022
A Employee Management System Web App

This is a Employees Management Web App. Installation Fork, clone or download this repository. Run composer install if it's the initial setup or compos

Maneesh Prashanth 3 Aug 20, 2022
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.

Lychee A great looking and easy-to-use photo-management-system. Since the 1st of April 2018 this project has moved to it's own Organisation (https://g

Tobias Reich 6.2k Jan 5, 2023
Database management in a single PHP file

Adminer - Database management in a single PHP file Adminer Editor - Data manipulation for end-users https://www.adminer.org/ Supports: MySQL, MariaDB

Jakub Vrána 5.5k Jan 8, 2023
Self hosted project management and collaboration tool powered by TALL stack

Sponsored By: Self hosted project management and collaboration tool inspired by basecamp. Notice: Project under some major change, do not use until st

iluminar 1.8k Jan 6, 2023
:panda_face: Jitamin is a free software written in PHP, intended to handle the project management over the web. QQ群: 656868

Jitamin Jitamin (pronounced /ˈdʒɪtəmɪn/) is a free software written in PHP, intended to handle the project management over the web. Jitamin is inspire

jitamin 916 Dec 14, 2022
Kanban project management software

Kanboard Kanboard is project management software that focuses on the Kanban methodology. Official website: https://kanboard.org/ List of features Chan

Kanboard 7k Jan 7, 2023
A high performance full-featured project management system

Interested in managed hosting? Take a brief survey to help us know what to build! Phproject A high-performance project management system in PHP Instal

Alan Hardman 357 Dec 27, 2022
Library management system

Scriptorium management system Amicus Plato, sed magis amica veritas In the copying process, there was typically a division of labor among the monks wh

Roman Movchan 4 Jan 9, 2022