Skip to main content

A collection of utility functions for AWS services

Project description

============================================== x24142816 Remote worktime tracker Guide

This document provides an overview of the dependencies, setup, and deployment steps. And thiw project interacts with AWS services such as S3, DynamoDB, SQS, SNS, and CloudWatch.


1. Required Dependencies

Ensure you have Python 3.6+ installed.

To install the required dependencies, run:

pip install -r requirements.txt

List of dependencies:

boto3==1.37.8
botocore==1.37.8
Django==4.2.19
setuptools==59.6.0
gunicorn==23.0.0
Pillow==11.1.0

(Note: The requirements.txt file is located in the project's root directory.)


2. utils > library 

utils - AWS Utilities Library.

utils is a Python library that provides various utility functions to interact with AWS services such as S3, DynamoDB, SQS, and CloudWatch.

Features

CloudWatch

  • Create log groups and streams
  • write logs to CloudWatch for monitoring authentication attempts
  • Track login failures and store security-related logs

DynamoDB

  • Save user information (ID, email, phone_number, etc..)
  • Store and retrieve worksession data, including timestamps and overtime

S3

  • Upload user profile pictures and store them securely in an S3 bucket

SQS

  • Send asynchronous messages to an SQS queue

SNS

  • Send event-driven notifications to administrators

Installation

You can install this library using pip:

pip install library-utils

How to Use (Call Functions)

To use this library in Python, import the required module:

from time_tracker.utils.<module_name> import <function_name>

3. Application Setup & Execution

Clone the Repository

git clone https://github.com/Jiyoung0716/Final_CPP_Project.git
cd Final_CPP_Project

For macOS/Linux:

python -m venv env
source env/bin/activate

For Windows:

python -m venv env
env\Scripts\activate

Install Dependencies

pip install -r requirements.txt

env file** (store sensitive credentials):

AWS_REGION=us-east-1
S3_BUCKET_NAME=x24142816-s3bucket
DYNAMODB_TABLE_USERS=Users
DYNAMODB_TABLE_WORKTIME=Worktime
DYNAMODB_TABLE_PROJECTS=Projects
SNS_TOPIC_ARN=arn:aws:sns:us-east-1:278101256714:x24142816-notification
SQS_QUEUE_URL=https://sqs.us-east-1.amazonaws.com/278101256714/x24142816_JiyoungKim_Queues

Run the Application

python manage.py runserver 8080
python3 manage.py runserver 8080

4. Deployment Steps (Elastic Beanstalk)

Initialize Elastic Beanstalk

eb init -p python-3.9 Remoteworktimetracker

Create an Environment

No need since the environment already exists (my-env)

Deploy the Application

eb deploy

Check Logs

eb logs

Open Application

eb open

5. Configuration Files

** django.config (Elastic Beanstalk Configuration)**

Located in `.ebextensions/`, this file contains environment settings for Django.

option_settings:
    aws:elasticbeanstalk:container:python:
        WSGIPath: tracker.wsgi:application

** python-publish.yml (GitActions)**

This GitHub Actions workflow automates the CI/CD process 
for publishing a Python package to PyPI.
(content: pylint-static analysis, library)

** Procile (Role to run Django with Gunicorn)**

web: gunicorn --bind 0.0.0.0:8080 tracker.wsgi:application

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

library_utils-0.1.9.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

library_utils-0.1.9-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file library_utils-0.1.9.tar.gz.

File metadata

  • Download URL: library_utils-0.1.9.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for library_utils-0.1.9.tar.gz
Algorithm Hash digest
SHA256 67a1d4bffa0ef7ffe0a93dfd47bfc91f2a4cf4b0a60b3e91bda7069042c46205
MD5 852511364a0ed0fdae090a6c58ef4163
BLAKE2b-256 3d1c3995596ebf5559eb0872f33b1ca3459a1d4fac626d8a4b93be50a0e77b27

See more details on using hashes here.

File details

Details for the file library_utils-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: library_utils-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for library_utils-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 ab977ce7b9079b445ba4f9446b5beefe47aea4330f593cff9b378e1a5a1f3ba5
MD5 7820208100765df502e23617db2f1a2e
BLAKE2b-256 cf6fa40a775743f63fd2c982ffeb6f96c1cb6ab4fe9b18c607563f6692798a0c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page