protobon / EncuentraMe

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

encuentrame

Twitter GitHub repo size Lines of code GitHub code size in bytes

HomeHero Release date: Mar-23-2022

visit website

Description

The main objective of our application is to bring help to pet owners that are looking for their pets. We use a post system that shows every pet that is currently missing or pets founds in the street, integrating Google Maps API to show each post location and Facebook API for user identification.

In this initial version of our application you will find three filters on the home page, "Perdidos" that contains posts made by pet owners that register their missing pet info with the location of the last time it was seen; "Encontrados" that contains posts made when you find a pet in the street and it is lost, it also uses the location functionality to register the exact point where the pet was seen, and by last, "Resueltos" that shows the post of pets that are finally reunited with their families.

We include in this version, the possibilities to moderate posts, i.e., a user that creates a post, can "Delete" their posts and also notify if the pet was found, that way it will be removed from the active list of pets and moved to the "Resueltos" section.

In addition, the functionality of report publication is added, to report if a post violates our terms and conditions, or if it makes reference to a pet that is not from the post creation. The admins can take down a post that violates the rules and also can block users in case it is required.

In the future, we'd like to include additional functionalities including contacting Veterinaries and Shelters for pet care and adoptions.

Trello project

Portfolio Project

General overview

Environment

A Ubuntu Server running over AWS EC2 with LEMP stack

Bash Vim VS Code Pycharm

cloud

AWS

server stack

Ubuntu Gunicorn Flask Jija Nginx

database

MySQL

languages

Python SQL HTML5 CSS3 JS

apis

  • Facebook: facebook api
  • Google: google maps api

css framework

Bootstrap

style guideliness

Web arquitecture

web stack

Cloud computing

Cloud based deployment: Run all parts of the application in the cloud EC2 instance.

  • Ubuntu Server 20.04 LTS (HVM), SSD Volume Type - ami-04505e74c0741db8d (64-bit x86)

  • Ubuntu Server 20.04 LTS (HVM),EBS General Purpose (SSD) Volume Type. Support available from Canonical

  • Root device type: ebs Virtualization type: hvm ENA Enabled: Yes

  • t2.micro (- ECUs, 1 vCPUs, 2.5 GHz, -, 1 GiB memory, EBS only)

  • ec2

  • ssh

  • ssl

  • ufw

  • nginx

  • mysql

Public IPv4 address

ssh to the instance

$ chmod 400 encuentrame.pem
$
$ ssh -i "encuentrame.pem" ubuntu@ec2-52-23-158-3.compute-1.amazonaws.com
ubuntu@ip-172-31-23-111:~$

CI/CD

run vagrant image

$ vagrant init encuentrame/ubuntu-20.04-server-ec2
$
$ vagrant up
$

Configure the environment

Initial configuration

Upgrade system

sudo apt-get update apt list --upgradable sudo apt-get upgrade

Install Nginx

run script

Install MySQL

run script

root: *****************

Install Python

sudo apt-get install python3-pip sudo apt-get install python3

Install linters

sudo apt-get install shellcheck sudo apt-get install pep8 sudo apt-get install pycodestyle

netstat

sudo apt install net-tools

to run netstat -tulpn tcp udp listening programs numeric

Flask

virtual environment mkdir encuentrame cd encuentrame sudo apt install python3.8-venv python3 -m venv venv

activate the virtual environment

ubuntu@ip-172-31-23-111:~/encuentrame$ . venv/bin/activate
(venv) ubuntu@ip-172-31-23-111:~/encuentrame$

pip install Flask

integrate nginx, flask and guinicorn

sudo apt update sudo apt install python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools

entorno virtual

sudo apt install python3-venv python3 -m venv encuentrameenv

activar entorno

source encuentrameenv/bin/activate

Configurar Flask

pip install wheel

pip install gunicorn flask

create with hello.py

sudo ufw allow 8000

optional export FLASK_RUN_PORT=8000 export FLASK_APP=hello.py

python hello.py

ubuntu@ip-172-31-23-111:~$ curl http://172.31.23.111:8000/


sudo vim /etc/nginx/nginx.conf

ssl/tls

create domain (almost a subdomain)

on get.tech

Zone id. 	11087069

Record Id 	125709711

Name 	encuentrame.xelar.tech

Class 	IN

Type 	A

Status 	Active

Value 	54.147.150.55

TTL 	7200

Creation Date 	2022-02-16 01:35:29.824305

Install snapd and certbot

sudo apt update sudo apt install snapd sudo apt-get upgrade sudo snap install hello-world sudo snap install core; sudo snap refresh core sudo apt-get remove certbot sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot

Run the certbot for nginx

sudo certbot --nginx

Allow traffic to the instance in AWS

Create security groups for http and https traffic in AWS Console

Authors

Andres

Twitter Linkedin Github

Ayrton

Linkedin Github

Ronald

Twitter Linkedin Github Vagrant Docker

About

License:Apache License 2.0


Languages

Language:HTML 49.1%Language:JavaScript 23.9%Language:Python 15.1%Language:CSS 11.0%Language:Shell 0.9%