GithubHelp home page GithubHelp logo

subscriber-management's Introduction

Subscriber Management

     Vue logo Tailwind CSS

Functionalities

  • Custom fields CRUD.
  • Subscriber CRUD.
  • Each subscriber can have more data in custom created fields. (subscribers and fields relationship)
  • Unit test of each features.
  • Subscriber list view with column toggle.
  • Developed using Laravel (as backend api) + VueJs (as frontend ui) + TailwindCSS (as ui framework)

Demo

Visit for Demo ---> https://subm.ashrafulislam.info

Installation

Clone the repository in your local machine using git clone https://github.com/ashraful19/subscriber-management

Run project with Docker

Running Backend API

  1. Open terminal/command promt from inside the subscriber-management/backend folder
  2. un command cp .env.example .env
  3. run command
docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/var/www/html \
    -w /var/www/html \
    laravelsail/php81-composer:latest \
    composer install --ignore-platform-reqs
  1. run ./vendor/bin/sail up -d
  2. run ./vendor/bin/sail php artisan migrate

At this point you have the backend application ready at http://localhost:8000 to receive rest api calls from frontend ui

  1. Run command ./vendor/bin/sail php artisan test to execute unit test cases
  2. Run command ./vendor/bin/sail php artisan db:seed to populate database with dummy data

Running Frontend UI

  1. Open terminal/command promt from inside the subscriber-management/frontend folder
  2. run command cp .env.example .env
  3. run command docker-compose up -d

At this point you have the frontend ui application ready ready to browse. Just open your browser and navigate to http://localhost:3000 and you should see the Subscriber-Management site home page

Run project Manually

Requirements for Local Environment

  • PHP Version 8.0
  • NodeJs Version 14 (Have tested on v14, but should be okay with v12 also)
  • MySql version 5.7

Before starting below points, please make sure your 8000 and 3000 ports are free. On Mac if you have valet running please stop it using 'valet stop' before going forward

Running Backend API

  1. Open terminal/command promt from inside the subscriber-management/backend folder
  2. run command cp .env.example .env
  3. update .env file database informations (DB_DATABASE, DB_USERNAME, DB_PASSWORD) according to your local machine.
  4. run command composer install
  5. run command php artisan migrate
  6. run command php artisan serve

At this point you have the backend application ready at http://localhost:8000 to receive rest api calls from frontend ui

  1. Run command php artisan test to execute unit test cases
  2. Run command php artisan db:seed to populate database with dummy data

Running Frontend UI

  1. Open terminal/command promt from inside the subscriber-management/frontend folder
  2. run command cp .env.example .env
  3. run command npm install
  4. run command npm run dev

At this point you have the frontend ui application ready ready to browse. Just open your browser and navigate to http://localhost:3000 and you should see the Subscriber-Management site home page

Features

Below points may seem over-engineering for a project like this. Because project requirements were basic and size was small too. But the below points are done to keep the project highly extendable and to demonstrate the need or importance or usability of these in bigger projects.

  • Laravel part
    • API Resource as response
    • Eloquent ORM and Relationship
    • Seperate Form Request classes for each forms
    • Complete Test Cases for every feature
    • Seeder and Factory for populate dummy data
  • VueJs part
    • Reusable Component based structure
    • Vue3 Composition API used
  • Used TailwindCSS and DaisyUI
  • Docker based setup

Scope of Improvements

  1. User Authentication can be provided to use this in a bigger scale. Currently the application is in a public/single scope sense.
  2. Pagination in subscribers and field list

To Do

  • Docker implementation

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.