Skip to content

mhdtwl/meetup

Repository files navigation

Meetup on Laravel

Build Status Total Downloads Latest Stable Version License

Laravel is a web application framework with expressive, elegant syntax. Laravel is accessible, powerful, and provides tools required for large, robust applications.

About

http://meetup.eu-central-1.elasticbeanstalk.com/

Social network application has REST API service, Web UI ( VueJs support ).

  • User gets an invitation to become a member in a Group
  • When a User in a Group, he can invite people from different groups to one/all of his groups.

Group has the following types: (currently)

  • private
  • closed
  • public

Invitation [Subscription] has the following status: (currently)

  • pending : has a request to join the group.
  • active : active member
  • canceled: inactive member
  • left: inactive member
  • blocked : blocked from this group
Main Entities
 Group, User, Subscription, GroupInterests     

Technologies :

  • Laravel 6, + Php 7.4 + PHPUnit 8.5.2
    • Homestead container env.
    • Carbon (Human) Readable Dates.
    • Passport oauth
    • Factory Faker + Seeder store fake data
    • Laravel-mix Djs/css Webpack compiler*
    • Resource for each Entity Model represented filter json response
    • 3 types of pagination ( api, simple, numeric)
    • etc...
  • Mysql 5.7
  • Vuejs2 + npm
  • Aws ElasticBeanstalk

Rest Service:

It's apis supported below

  • [POST] : Login and get oauth access-token
  • [GET] : Retrieve list of groups, users and invitations
  • [POST] : To send invitation

Postman collections document: https://documenter.getpostman.com/view/5428948/SzS8sQQf?version=latest

Instructions

Install php/js libraries
>>> composer install
>>> npm install
Prepare database
>>> Php artisan migrate  | php artisan migrate:refresh
>>> php artisan db:seed
>>> php artisan passport:install

Run below commands:

As a recommendation, test the code after any change...

Make sure [.env → APP_DEBUG=false ] and run:

>>> ./vendor/bin/phpunit
>>> ./vendor/bin/phpstan analyse
On js/css files:
>>> npm run dev

Releases

No releases published

Packages

No packages published