My AlmuTicket

1. AlmuTicket: Project Description

Create an internal APP for Asociación Arrabal in order to centralize all the requests currently received by Almudena(the receptionist) from different sources and people.

This web application will allow to generate tickets with requests, incidents and room reservations to the people who are part of Arrabal from their cell phones or desktops and to Almudena to manage them all from only one place: AlmuTicket app.

This readme corresponds to the backend development of the application, which is complemented by the frontend development located in the repository https://github.com/CarmenGP/almuticket-front

2. User Stories

2.1 Administrator

  • It’s necessary to have a view to see the tickets created by the user (Read).
  • A view is needed to manage existing tickets (Update).
  • A button is needed to change the status of a ticket (Viewed, pending, pending, finished, rejected).
  • Need to reject the status of a ticket. The application will automatically send an email to inform the user about the rejected status of their request.
  • It’s necessary to close the status of a ticket and the application will automatically send an email to inform the user about the resolved status of their request.

2.2 Users

  • A button is needed for registration.
  • A button is needed for login.
  • A button is needed for a ticket to be created (Create).
  • The user will be able to see a list with the tickets that he has created (Read).
  • The user will receive an automated email informing him that his ticket has been resolved.
  • The user will receive an automated email informing them that their ticket has been rejected.

2.3 Additional features (Users)

  • That the user has a button to delete the tickets created while it remains in the "Issued" status.

3. Fullstack Developer Team and GitHub Links

4. Project Demo

300323.Video.Readme.Demo.-.Compressed.with.FlexClip.mp4

5. Atomic Design

Atomic Design 1 Atomic Design 2 Arrabal Logo White Arrabal Logo Orange

6. Final Design

6.1 Mobile View

User Mobile view

User Mobile View 1 User Mobile View 2 User Mobile View 3 User Mobile View 4

Mobile View of Tickets

Booking View Ticket Incident View Ticket

6.2 Computer views (Common administrator and user)

Register Ingress Generate Ticket Tickets List Create Booking Create Incidence

6.3 Exclusive administrator view

Tickets List Gestion Reservs Gestion Incidences

7. Stacks and technologies

8. Other Tools

9. Methodology

  • Agile (SCRUM)
  • Mob programming
  • Pair programming
  • Single programming
  • TDD

10. Core skills

  • MVC Design pattern.
  • Git version control system.
  • User stories and tasks implementation (Trello).
  • Communication and self-evaluation.

11. How to install

11.1 Required:

  • NPM Installed.
  • JWT Installed.
  • PHP (Minimum, version 8.1).
  • Composer & Laravel Installed and updated to latest version.
  • XAMPP/LAMPP Installed.
  • MySQL.

  • 11.2 To install our project

  • Open IDE
  • Copy in the terminal: git clone https://github.com/Himorell/almuTicketApi
  • Type in the IDE terminal: npm install and press intro.
  • In the IDE run git clone command, an paste the HTTPS.
  • Write in the IDE terminal the command: composer update.
  • Write in the IDE terminal the command: composer require tymon/jwt-auth.
  • Type in the IDE terminal: php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
  • Type in the IDE terminal: php artisan jwt:secret
  • An .env file (in the form of a little wheel) will be downloaded. Go into it and rename the line DB_DATABASE. Change the name generated by default and write almuticketapi
  • Open XAMPP or LAMPP.
  • Login to phpMyAdmin and create a new database named almuticketapi
  • Type in the IDE terminal: php artisan migrate:fresh --seed and press intro.
  • Type in the IDE terminal: npm run dev and press intro. Then open another terminal in the IDE without closing the previous one
  • Type in the IDE terminal: php artisan migrate and press intro
  • Type in the IDE terminal: php artisan serve and press intro.

  • 11.3 Warning & Testing

    1. Important: If we then need to run more commands in the IDE, we'll open a third terminal without closing the previous two.
    2. Test: Run in the IDE php artisan test & vendor/bin/phpunit where it should return the following result: Test: 26 passed (85 assertions) and Tests: 26, Assertions: 85
    testBackend

    11.4 API verification with Postman

    Through the Postman application we have carried out our API verification. Through this application we have tested the "HTTP Request" to validate the responses received. Below we share the verification carried out:

    11.4.1 Register, Login and Logout POST method

    postRegister postLogin postLogout

    11.4.2 Booking CRUD

    createBooking
    GET.-.R.Booking.mp4
    readBookingShowID updateBooking deleteBooking

    11.4.3 Incidence CRUD

    POST.C.Incidence.mp4
    GET.R.Incidence.mp4
    readIncidenceShowId

    12. Next steps

    • Frontend test
    • Implementation of more functionality in tables.
    • Connection of all components with AXIOS.
    • Enable route to show views from tickets.
    • Finish implementing media query in frontend.
    • Implement the view of the helper CRUD's.
    • Automatic sending of emails, using EmailJS.