CheckPoint 4 - Learning Management System

Overview

Welcome to the Learn Party

Build Status Scrutinizer Code Quality Coverage Status License Codacy Badge

Learn Party is a learning platform that offers user generated content for studying the latest technologies online (Youtube hosted videos).

What can I do on Learn Party

1. Register account

Create an account using your email, facebook, twitter or github account in under a minute.

Proceed to login here

2. User profile

Update your profile details, avatar or simply put up a small bio about yourself that your video viewers can read about.

3. Video Resources

  1. Create new videos on your profile, edit exisiting details or delete your uploaded videos entirely.

  2. Keep track of all the videos you have uploaded straight from your dashboard.

4. Favorite, Comment, Engage

  1. Engage other learners on the comment section of the videos that capture your attention.

Too many videos?

  1. Favorite the videos you like and revisit them later on your profile.

5. Trendy Videos

If you are just looking to see what technologies are the fuss around, Access the most popular videos on your homepage

See the most popular videos according to
1. Which videos have the most likes.
2. Which videos have the most comments
3. Which videos have the most views
4. Which users have the most uploads

You do not have to be logged in to view the videos without engagement (Commenting, Favoriting, uploading and editing)

##Usage

It is recommended that you have the following set up on your local environment before getting started

  1. Composer
  2. [Laravel] (https://laravel.com)
  3. [Vagrant] (https://www.vagrantup.com)
  4. Postgres
  5. [Git] (https://git-scm.com)

Clone the repository into your local environment

$ git clone [email protected]:andela-jkariuki/checkpoint-four-learn-party.git

Change directory into checkpoint-four-learn-party

$ cd checkpoint-four-learn-party

Copy the .env file into your project (use the env.example template) and populate it with your environment data

$ cp env.example .env

You can also follow the template for your .env

APP_ENV=local
APP_DEBUG=true
APP_KEY=
APP_URL=

DB_HOST=
DB_PORT=5432
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=

CACHE_DRIVER=
SESSION_DRIVER=
QUEUE_DRIVER=

REDIS_HOST=
REDIS_PASSWORD=
REDIS_PORT=

MAIL_DRIVER=
MAIL_HOST=
MAIL_PORT=
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=

GITHUB_APP_ID=
GITHUB_APP_SECRET=
GITHUB_CALLBACK_URL=

FACEBOOK_APP_ID=
FACEBOOK_APP_SECRET=
FACEBOOK_CALLBACK_URL=

TWITTER_APP_ID=
TWITTER_APP_SECRET=
TWITTER_CALLBACK_URL=

AWS_KEY=
AWS_SECRET=
AWS_REGION=
AWS_BUCKET=

CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_BASE_URL=
CLOUDINARY_SECURE_URL=
CLOUDINARY_API_BASE_URL=

Run Composer install to install the vendor packages

$ composer install

Boot up your server and you are ready to go

If you are using vagrant, simply run

$ vagrant up

Otherwise, run

$ php artisan serve

Tests

if you have phpunit installed globally (recommended), run

$ phpunit

Otherwise, run

$ vendor/bin/phpunit

Contributing

Contributions are welcome and will be fully credited.

We accept contributions via Pull Requests on Github.

Pull Requests

  • PSR-2 Coding Standard - The easiest way to apply the conventions is to install PHP Code Sniffer.

  • Add tests! - Your patch won't be accepted if it doesn't have tests.

  • Document any change in behaviour - Make sure the README.md and any other relevant documentation are kept up-to-date.

  • Consider our release cycle - We try to follow SemVer v2.0.0. Randomly breaking public APIs is not an option.

  • Create feature branches - Don't ask us to pull from your master branch.

  • One pull request per feature - If you want to do more than one thing, send multiple pull requests.

  • Send coherent history - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please squash them before submitting.

Security

If you discover any security related issues, please email me at John Kariuki or create an issue.

Credits

John kariuki

License

The MIT License (MIT)

Copyright (c) 2016 John kariuki [email protected]

The Learn Party is open-sourced software licensed under the MIT license.

Comments
  • When I try to change my avatar, I always get this message

    When I try to change my avatar, I always get this message

    Note: The file I tried to upload is 2.2MB. If there is a limit to the size of the picture it can accommodate, then there should be an appropriate message returned to the user indicating that the picture is too large.

    screen shot 2016-03-21 at 8 19 29 pm
    opened by unicodeveloper 11
  • [#115991437] Tests: User Controllers, Repository and Model

    [#115991437] Tests: User Controllers, Repository and Model

    What does this PR do?

    Tests: User Controllers, Repository and Model

    Description of Task to be completed?

    Test the User Repository to assert that

    1. RegIster or log in a user using social and traditional auth
    2. A user can upload an avatar
    3. A user can update their profile info

    Test the user controller to assert that

    1. An authenticated user can view their profile
    2. Return a list of all the videos they have uploaded.

    What are the relevant pivotal tracker stories?

    [#115991437]

    opened by johnkariuki 9
  • [Chore 1115993955] Update Code Coverage settings for default laravel methods

    [Chore 1115993955] Update Code Coverage settings for default laravel methods

    What does this PR do?

    Tests: Home, Category, Comments and Favorites Controllers, Models

    Description of Task to be completed?

    Test the HomeController to assert that

    1. A user can see all the uploaded videos on the homepage

    Test the CategoryController to assert that

    1. A user can view videos by a category

    Test the CommentController to assert that

    1. An authenticated user can create a comment on a video.

    Test the FavoritesController to assert that

    1. An authenticated user can like and unlike a video

    What are the relevant pivotal tracker stories?

    #115993955 #115998063

    opened by johnkariuki 1
  • #115993955 Tests: Home, Category, Comments and Favorites Controllers, Models

    #115993955 Tests: Home, Category, Comments and Favorites Controllers, Models

    What does this PR do?

    Tests: Home, Category, Comments and Favorites Controllers, Models

    Description of Task to be completed?

    Test the HomeController to assert that

    1. A user can see all the uploaded videos on the homepage

    Test the CategoryController to assert that

    1. A user can view videos by a category

    Test the CommentController to assert that

    1. An authenticated user can create a comment on a video.

    Test the FavoritesController to assert that

    1. An authenticated user can like and unlike a video

    What are the relevant pivotal tracker stories?

    #115993955 #115998063

    opened by johnkariuki 1
  • #115993955 Tests: Dashboard Controller

    #115993955 Tests: Dashboard Controller

    What does this PR do?

    Tests: Dashboard Controller

    Description of Task to be completed?

    Write tests to assert that an Authenticated user can

    1. view the create video channel
    2. create a new video
    3. view the edit video page that belongs to them
    4. update a video
    5. Delete a video that belongs to them
    6. See their favorited videos
    7. See all their uploaded videos

    What are the relevant pivotal tracker stories?

    #115993955

    opened by johnkariuki 1
  • Ch video tests 115985449

    Ch video tests 115985449

    What does this PR do?

    Tests: Video Controllers, Repository and Model

    Description of Task to be completed?

    Tests the Video Controllers to assert that

    1. A user can see a single video with comments, favorites, categories and owner

    Test the video repository to

    1. Increase the views on a video
    2. Get all comments on a video
    3. format a youtube url
    4. Check if a video is liked or not by an authenticated user
    5. Favorite and unfavorite a video
    6. Get Popular videos in all categories

    How should this be manually tested?

    $ phpunit tests/VideoTest.php 
    

    What are the relevant pivotal tracker stories?

    #115985449

    opened by johnkariuki 1
  • [#115985449] Tests: Video Controllers, Repository and Model

    [#115985449] Tests: Video Controllers, Repository and Model

    What does this PR do?

    Tests: Video Controllers, Repository and Model

    Description of Task to be completed?

    Tests the Video Controllers to assert that

    1. A user can see a single video with comments, favorites, categories and owner

    Test the video repository to

    1. Increase the views on a video
    2. Get all comments on a video
    3. format a youtube url
    4. Check if a video is liked or not by an authenticated user
    5. Favorite and unfavorite a video
    6. Get Popular videos in all categories

    How should this be manually tested?

    $ phpunit tests/VideoTest.php 
    

    What are the relevant pivotal tracker stories?

    #115985449

    opened by johnkariuki 0
  • [#115966029] Fix UI Bugs

    [#115966029] Fix UI Bugs

    What does this PR do?

    Ensure that videos with traction appear on the popular section Load scripts via https or http depending on the environment

    Description of Task to be completed?

    Ensure that videos with traction appear on the popular section Load scripts via https or http depending on the environment

    What are the relevant pivotal tracker stories?

    [#115966029]

    opened by johnkariuki 0
  • [#15902473] Allow user to see favorited videos and uploaded videos

    [#15902473] Allow user to see favorited videos and uploaded videos

    What does this PR do?

    Allow user to see favorited videos and uploaded videos

    Description of Task to be completed?

    1. A user can see all the videos that they have uploaded with the option to edit and delete.
    2. A user can be able to see all the videos that they have previously favorited

    How should this be manually tested?

    1. create account
    2. favorite a video
    3. create a new video
    4. visit the favorites and uploaded sections on the dashboard

    What are the relevant pivotal tracker stories?

    #115902473 #115737799

    opened by johnkariuki 0
  • #115894619 Custom error message, footer and nav

    #115894619 Custom error message, footer and nav

    What does this PR do?

    Fix Custom error message, footer and nav

    Description of Task to be completed?

    1. Add site title and favicon
    2. FIx navigation bar padding
    3. Design a simple learn party footer
    4. Design a custom error message as opposed to the default laravel message

    How should this be manually tested?

    1. Visit the homepage,
    2. Enter a non-existent URL

    What are the relevant pivotal tracker stories?

    1. [#115894619]
    2. [#115889407]
    3. [#115889441]
    4. [#115902481]

    Screenshots (if appropriate)

    opened by johnkariuki 0
  • [#115893475] Modify design of user videos page

    [#115893475] Modify design of user videos page

    What does this PR do?

    View a user's profile on videos page

    Description of Task to be completed?

    Redesign a user's homepage to have a swanky design where

    1. Highlight one video
    2. show profile on the side
    3. List all other videos below

    How should this be manually tested?

    Click on a user's profile

    What are the relevant pivotal tracker stories?

    [#115893475]

    Screenshots (if appropriate)

    opened by johnkariuki 0
Owner
Kariuki
Software developer
Kariuki
xAPI Integration with Saudi NELC (National Center for e-Learning) for your Laravel app

NELC Laravel Integration xAPI Integration with Saudi NELC (National Center for e-Learning) for your Laravel app Installation You can install the packa

MSAAQ, LLC 2 Sep 15, 2022
Laravel Restaurant Management System Project

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

Benjdia Saad 8 Mar 26, 2022
Home of the Joomla! Content Management System

Joomla! CMS™ Build Status Drone-CI AppVeyor PHP Node npm Overview This is the source of Joomla! 4.x. Joomla's Official website. Joomla! 4.0 version hi

Joomla! 4.3k Jan 1, 2023
Attendance Tracker & Management System

Attendance Tracker & Management System Technologies used: HTML5, CSS3, PHP and MySQL. Project Description Attendance Tracker could be an award-winning

Saurabh Kishor 1 Oct 29, 2022
BookMyBox is a room booking management system developed for Medianet

BookMyBox is a room booking management system developed for Medianet. The purpose of this web app is to allow Medianet employees to easily check the availability and book one of the boxes for a meeting without overlapping with other employees.

louayjeddou 4 Aug 31, 2022
This project is a room booking management system developed for Medianet.

This project is a room booking management system developed for Medianet. The purpose of this web app is to allow Medianet employees to easily check the availability and book one of the boxes for a meeting without overlapping with other employees.

louayjeddou 4 Sep 14, 2022
cybercog 996 Dec 28, 2022
Module Management In Laravel

Laravel-Modules Laravel laravel-modules 5.4 ^1.0 5.5 ^2.0 5.6 ^3.0 5.7 ^4.0 5.8 ^5.0 6.0 ^6.0 7.0 ^7.0 8.0 ^8.0 nwidart/laravel-modules is a Laravel p

Nicolas Widart 4.6k Dec 29, 2022
undefined is an issue tracking product that allows agile project management.

undefined is an issue tracking product that allows agile project management. Our goal is to make work life simpler, more efficient and stress-free. In

Osvaldas Ulevičius 3 Jun 27, 2021
Simple timesheets and vacation management for small businesses.

About Daybreak Daybreak is a very simplistic timesheet and vacation planning program for small businesses. It was created because I needed something I

Erik Porsche 110 Dec 27, 2022
HTML Meta Tags management package available for for Laravel 5.*

HTML Meta Tags management package available for Laravel 5/6/7/8 With this package you can manage header Meta Tags from Laravel controllers. If you wan

Lito 182 Dec 5, 2022
Theme and asset management for laravel

Laravel-Themevel Themevel is a Laravel theme and asset management package. You can easily integrate this package with any Laravel based project. Featu

Shipu Ahamed 339 Dec 23, 2022
An in-app database management UI for Laravel applications. ⚡️

:package_description This repo can be used to scaffold a Laravel package. Follow these steps to get started: Press the "Use template" button at the to

Ryan Chandler 3 Nov 13, 2021
Ebansos (Electronic Social Assistance) is a web application that provides citizen data management who will receive social assistance to avoid misdirection assistance from public service/government.

E Bansos Ebansos (Electronic Social Assistance) is a web application that provides citizen data management who will receive social assistance to avoid

Azvya Erstevan I 12 Oct 12, 2022
Listingslab Public CDN & Project Management

Listingslab Public CDN & Project Management pingpong ______ _ ____ | ___ (_)

@listingslab 4 Jan 2, 2022
PlayZ is an esport event organization and management website allowing the creation of tournaments on the most popular video games of the esport scene.

PlayZ the playz to play Table of Contents Description "What is Playz?" In one sentence PlayZ is "an esport event organization and management website a

Antoine Saunier 2 Dec 7, 2021
Laravel Users | A Laravel Users CRUD Management Package

A Users Management Package that includes all necessary routes, views, models, and controllers for a user management dashboard and associated pages for managing Laravels built in user scaffolding. Built for Laravel 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 6.0, 7.0 and 8.0.

Jeremy Kenedy 393 Nov 28, 2022
Theme and asset management for laravel

Laravel-Themevel Themevel is a Laravel theme and asset management package. You can easily integrate this package with any Laravel based project. Featu

Shipu Ahamed 339 Dec 23, 2022
Manage your staff from one place. Featuring Staff leave management 🏖, payslips 💵 generation & emailing, messaging 📨and more 🛠! Built with ❤️ with Laravel

Staff Management System This little buddy can help you manage your staff database! Built with ?? with Laravel #FEATURES 1 Staff management/ database S

Ezekiel Oladejo 45 Jan 3, 2023