Giter VIP home page Giter VIP logo

event-task-management-app's Introduction

Gitpod ready-to-code

event-task-management-app

Project: EVENT TASK APP

This project is of the Full Stack Development course that I am taking, provided by Code Institute. This specific one, is the milestone project of the Full Stack Development Chapter. The objective of this project is to test and put in practice the techologies and langueges I have learned during the chapter, which are: Python, Django, SQL, Bootstrap, Javascript, HTML, CSS, etc.

The website itself it is a online shop where users can buy tickets for events.

UX:

The user is supposed to find an easy and intuitive interface.

As a User I want to be able to:

  • Register
  • Login
  • Logout
  • Save pernoanl info
  • Edit personal info
  • View events
  • View venues
  • View staff
  • Pay for tickets
  • View past orders

As an Admin I want to be able to do everything a regular user does plus:]

  • Add edit and delete, users venues staff and events

FEATURES:

All the previous features mentioned in the UX part, are fully implemented and fully functional. ( chech the techologies part to see how they were implemented )

TECHNOLOGIES USED:

HTML and CSS

  • Used to display the front-end;

Javascript

  • Used to implement collapsable menus and form submitions;

Bootstrap

  • Front end framework. Most of the styling is based on bootstrap;

Python

  • Used to manipulate back end and front end. This is the "central point" of the project;

Django

  • Python framework used to implement python and manipulate the project and interactions between components. This is the framework the allows connections between front end files using python;

SQL

  • Allows for database functionalities;

DJ Database Url:

  • Allows to parse databse connections;

Flake8:

  • Helps correcting errors and implementing best practices;

Django Allauth:

  • Autentication System;

Django Crispy Forms:

  • Forms;

Stripe:

  • Payments;

TESTING:

  • Front-End: I have tested the website using multiple browsers, in this case Chrome, Opera and Safari. I have also tested it in mobile devices of multible size, using Chrome develpor options. (Iphone, Ipad, Samsung Galaxy, etc)

  • Back-End: I have tested all the links and buttons present in the website, as well as all the input fields. After finishing all this tests I can guarantee that all the CRUD operations are available to the users, without broken links or options.

  • Flake8: I used Flake8 to test and implement good coding practices and coding standards.

  • The html css and js code was running through validators with major errors preventing its functioning.

  • All the input fields were manually tested.

  • The website flow (from landing page and login, to the payment), were testing from multiple prespectives and multiple screens.

The main problem that I found during the testing was:

  • Because of the side of the project, it was possible to test almost everything manually. With a project possible growing, this would not be possible anymore and a more viable approach would be needed, with more automation.

This project was deployed to Heroku to the following url: https://event-task-app.herokuapp.com/

In order to implement this project in a safe and correct way, some environment variables were needed:

  • AWS_ACCESS_KEY_ID used to store media and static files
  • AWS_SECRET_ACCESS_KEY used to store media and static files
  • DATABASE_URL used for connection to the database
  • EMAIL_HOST_PASS used for sending emails
  • EMAIL_HOST_USER used for sending emails
  • SECRET_KEY used for running django
  • STRIPE_PUBLIC_KEY used for stripe payments
  • STRIPE_SECRET_KEY used for stripe payments
  • STRIPE_WH_SECRET used for stripe payments
  • USE_AWS used to store media and static files
  • DEVELOPMENT used to set debug mode

All the variables mentioned above are used in the code but no defined. They are defined in heroku as "Config Vars". To run the code locally, you should run the "manage.py" file. In order for it to run successful, you will need to define all the variables above. All of them should be defined in the "settings.py" file.

On the Heroku side, I used the Github/Heroku option available on Heroku's website to do the deployment, by doing this I assure that everytime I commit to github, heroku is updated. This allows me to have always the most up to date version deployed and available to the user.

To the development itself, I used Gitpod, which allowed me to work with all the technologies mentioned above, without major bugs.

CREDITS

  • Code Institute: I gained inspiration to this project in the tutorials made available to its students by Code Institute, which are great and with high level of detail. Following this tutorials provides a great level of understanding about the project as well as getting to a nice final results.
  • Bootstrap: Used to style the project.
  • Youtube: Used for learning how to implement a count up Javascript timer.
  • Pexels: Used for gathering free images.
  • Flake8: Used for best practices.
  • Stripe: Used for payments.

Ricardo Santos, 2020

event-task-management-app's People

Contributors

rscybertech avatar

Watchers

 avatar

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.