Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
CristyNel committed Aug 26, 2024
1 parent 36f3307 commit 28df518
Showing 1 changed file with 202 additions and 54 deletions.
256 changes: 202 additions & 54 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,54 @@
# CV Management System API
![](https://i.imgur.com/waxVImv.png)
```sh
██████ ██ ██ ██████ ██ ██ ██ ██ ██████ ███████ ██████
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
██ ██ ██ ██████ ██ ██ ██ ██ ██ ██ █████ ██████
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
██████ ████ ██████ ██████ ██ ███████ ██████ ███████ ██ ██
```
![](https://i.imgur.com/waxVImv.png)
[![freeCodeCamp Social Banner](https://venngage-wordpress.s3.amazonaws.com/uploads/2021/11/section-3-resume-banner-1-1.png)
<div align="center" markdown="1">

[![GitHub Repo stars](https://img.shields.io/badge/Project%20mindmap-Miro-yellow?logo=miro)](https://reddit.com/submit?url=https://github.com/)
[![GitHub Repo stars](https://img.shields.io/badge/Thanks%20Contributors-❤️-red?logo=github)](https://github.com/damarisnicolae/CV_project/graphs/contributors/)
</div>
<!-- <p align="center"><img src="https://cdn6.aptoide.com/imgs/9/2/6/9262d372de5cd29430c675a6099e115c_icon.png?w=128" height="128" ></p> -->


## CV Management System API 📜✍️

This project provides a platform for managing user data and generating custom CV templates.

## Directory structure Hierarchy

### Table of contents
1. [Directory structure Hierarchy](#directory-structure-hierarchy)
2. [Components](#components)
3. [Prerequisites](#prerequisites)
4. [Environment variables file .env file](#environment-variables-file-env-file)
5. [Install Basic Tools](#install-basic-tools)
6. [Replace Paths](#replace-paths)
7. [Create DB, users table](#create-db-users-table)
8. [Verify successful import](#verify-successful-import)
9. [Change DB user password](#change-db-user-password)
10. [Build the backend API](#build-the-backend-api)
11. [BFF Flask app setup frontend](#bff-flask-app-setup-frontend)
12. [SSH conection](#ssh-conection)
13. [Github commit](#github-commit)
14. [Start the project](#start-the-project-makefile)
15. [Docker](#docker)
16. [Browser links](#browser-links)
17. [Other free resources](#other-free-resources)


### Directory structure Hierarchy
```sh
CV_project
├── .github # GitHub configuration directory
│ └── workflows # GitHub Actions workflows
│ ├── integration-tests.yml # Workflow for integration tests
│ ├── unit-tests.yml # Workflow for unit tests
│ └── venom-tests.yml # Workflow for venom tests
├── api # Go API - backend
│ ├── CV_project # Executable file ... (cd $PathCvProject/api && go build -o CV_project main.go)
│ ├── example.pdf # Sample PDF
Expand All @@ -29,36 +73,32 @@ CV_project
│ │ ├── template2.html # CV template 2
│ │ └── template3.html # CV template 3
│ └── users.js # JavaScript - user-related functionality
├── db.cnf # Database configuration
├── docker-compose.yml # Docker Compose configuration
├── .env # Environment variables file
├── .gitignore # Git ignore - version control
├── .github # GitHub configuration directory
│ └── workflows # GitHub Actions workflows
│ ├── integration-tests.yml # Workflow for integration tests
│ ├── unit-tests.yml # Workflow for unit tests
│ └── venom-tests.yml # Workflow for venom tests
├── Makefile # Building and running
├── README.md # Project documentation
├── sql # SQL files - database schema
│ ├── db.cnf # Database configuration
│ ├── Dockerfile # Dockerfile - sql
│ ├── mysql.pid # MySQL process ID file
│ ├── schemadump.sql # Schema creation and sample data
│ └── schema.sql # Schema creation only
└── src # Source code
└── __init__.py # Initialization and configuration
├── src # Source code
│ └── __init__.py # Initialization and configuration
├── .env # Environment variables file
├── .gitignore # Git ignore - version control
├── Makefile # Building and running
├── README.md # Project documentation
└── docker-compose.yml # Docker Compose configuration
```

## Components:

Backend (Go) : HandlMYSQL_

MYSQL_s user data management, authentication, and PDF generation.
Frontend (Python,Flask) : Provides the web interface for user interaction.
Database (SQL) : Stores user information.
### Components:

Backend (Go) : Handles user data management, authentication, and PDF generation.
Frontend (Python,Flask) : Provides the web interface for user interaction.
Database (SQL) : Stores user information.

<div align="right">
<b><a href="#table-of-contents">🔝</a></b>
</div>

## Prerequisites:
### Prerequisites:

- `Go `: _Backend development_
- `Flask `: _Frontend development_
Expand All @@ -68,7 +108,11 @@ Database (SQL) : Stores user information.
- `Docker & Docker Compose `: _Containerized deployment_


## Environment variables file: .env file
<div align="right">
<b><a href="#table-of-contents">🔝</a></b>
</div>

### Environment variables file: .env file

```sh
MYSQL_ROOT_PASSWORD=***
Expand All @@ -81,22 +125,34 @@ MYSQL_DATABASE=users
MYSQL_PORT=3306
```

## Install Basic Tools:
<div align="right">
<b><a href="#table-of-contents">🔝</a></b>
</div>

### Install Basic Tools:

```sh
sudo apt update && sudo apt upgrade && sudo apt install -y git curl build-essential golang-go python3 python3-pip wkhtmltopdf docker.io docker-compose selinux-utils curl mysql-server
sudo mysql_secure_installation
pip install --break-system-packages Flask Flask-Bcrypt Flask-Migrate Flask-SQLAlchemy
```

## Replace Paths
<div align="right">
<b><a href="#table-of-contents">🔝</a></b>
</div>

### Replace Paths

```sh
PathCvProject="/bcn/github/CV_project"
grep -q "PathCvProject=" ~/.bashrc || echo "export PathCvProject=\"$PathCvProject\" # Set path to CV project." >> ~/.bashrc && source ~/.bashrc
```

## Create DB, users table
<div align="right">
<b><a href="#table-of-contents">🔝</a></b>
</div>

### Create DB, users table

```sh
sudo mysql -u root -p
Expand All @@ -105,7 +161,11 @@ USE users;
SOURCE /bcn/github/CV_project/sql/schemadump.sql;
```

## Verify successful import
<div align="right">
<b><a href="#table-of-contents">🔝</a></b>
</div>

### Verify successful import

```sh
mysql -u root -p users
Expand All @@ -118,13 +178,21 @@ SELECT * FROM template;
SELECT * FROM users;
```

## Change DB user password
<div align="right">
<b><a href="#table-of-contents">🔝</a></b>
</div>

### Change DB user password

```sh
ALTER USER 'CV_user'@'localhost' IDENTIFIED BY 'Y0ur_strong_password';
```

## Build the backend API
<div align="right">
<b><a href="#table-of-contents">🔝</a></b>
</div>

### Build the backend API

```sh
cd $PathCvProject/api
Expand All @@ -135,15 +203,23 @@ export DB_PASSWORD="?????????????"
./CV_project
```

<div align="right">
<b><a href="#table-of-contents">🔝</a></b>
</div>

## BFF Flask app setup frontend

```sh
cd $PathCvProject/bff
python3 app.py -i 127.0.0.1 -p 8080
```

# Github
<div align="right">
<b><a href="#table-of-contents">🔝</a></b>
</div>


## Github
### SSH conection

```sh
Expand All @@ -158,7 +234,11 @@ git config --global http.sslBackend "openssl"
ssh -T [email protected]
```

### Commit & pull-push, avoid conflicts
<div align="right">
<b><a href="#table-of-contents">🔝</a></b>
</div>

### Github commit

```sh
echo "Enter commit message (Title case, infinitive verb, brief and clear summary of changes):"
Expand All @@ -169,7 +249,11 @@ git commit -m "$CommitMssg"
git pull && git push origin main
```

## Start the project: Makefile
<div align="right">
<b><a href="#table-of-contents">🔝</a></b>
</div>

### Start the project: Makefile

```sh
cd $PathCvProject
Expand All @@ -178,25 +262,89 @@ make # Build and start the services
make docker # # Start services using Docker Compose
```

## Docker

```sh
docker-compose build # build
docker-compose up # start
docker-compose up -d # run background
docker-compose stop # only stop
docker-compose down # stops and removes containers
docker-compose ps # view running containers
docker-compose rm # removes stopped service containers
```

## Browser links

https://miro.com/app/board/uXjVK6HA_1A=/

http://127.0.0.1:5000/template1

http://127.0.0.1:5000/template2

http://127.0.0.1:5000/template3
<div align="right">
<b><a href="#table-of-contents">🔝</a></b>
</div>


# Doker
| | Command | Description |
|:---|:---|:---|
|🔨 |`docker-compose build ` |# build
|🔼 |`docker-compose up ` |# start
|🔘 |`docker-compose up -d ` |# run background
|🛑 |`docker-compose stop ` |# only stop
|🔽 |`docker-compose down ` |# stops and removes containers
|🩺 |`docker-compose ps ` |# view running containers
|🧹 |`docker-compose rm ` |# removes stopped service containers
| | | |

<div align="right">
<b><a href="#table-of-contents">🔝</a></b>
</div>

### Browser links

- [Miro](https://miro.com/app/board/uXjVK6HA_1A=/)

- [template1](http://127.0.0.1:5000/template1)

- [template2](http://127.0.0.1:5000/template2)

- [template3](http://127.0.0.1:5000/template3)
#
![](https://i.imgur.com/waxVImv.png)

### List of Free Learning Resources In Many Languages

<div align="center" markdown="1">

[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)&#160;
[![License: CC BY 4.0](https://img.shields.io/badge/License-CC%20BY%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by/4.0/)&#160;
[![Hacktoberfest 2023 stats](https://img.shields.io/github/hacktoberfest/2023/EbookFoundation/free-programming-books?label=Hacktoberfest+2023)](https://github.com/EbookFoundation/free-programming-books/pulls?q=is%3Apr+is%3Amerged+created%3A2023-10-01..2023-10-31)

</div>


### Where To Look For Further Info :thinking:
- [freeCodeCamp Guide](https://guide.freecodecamp.org/)
- [GeeksForGeeks](https://www.geeksforgeeks.org/)
- [Dev.To](https://dev.to/)
- [Stack Overflow](https://stackoverflow.com/)
- [Dzone](https://dzone.com/)

### Other free resources
+ [English, Books By Programming Language](https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-langs.md/)
+ [English, Interactive Programming Resources](https://github.com/EbookFoundation/free-programming-books/blob/main/more/free-programming-interactive-tutorials-en.md)
+ [English Courses](https://github.com/EbookFoundation/free-programming-books/blob/main/courses/free-courses-en.md)

<div align="right">
<b><a href="#table-of-contents">🔝</a></b>
</div>

### Coding Practice Sites :zap:
- :link: [CodeForces](http://codeforces.com/)
- :link: [CodeChef](https://www.codechef.com)
- :link: [Coderbyte](https://coderbyte.com/)
- :link: [CodinGame](https://www.codingame.com/)
- :link: [Cs Academy](https://csacademy.com/)
- :link: [HackerRank](https://hackerrank.com/)
- :link: [Spoj](https://spoj.com/)
- :link: [HackerEarth](https://hackerearth.com/)
- :link: [TopCoder](https://www.topcoder.com/)
- :link: [Codewars](https://codewars.com/)
- :link: [Exercism](http://www.exercism.io/)
- :link: [CodeSignal](https://codesignal.com/)
- :link: [Project Euler](https://projecteuler.net/)
- :link: [LeetCode](https://leetcode.com/)
- :link: [Firecode.io](https://www.firecode.io/)
- :link: [InterviewBit](https://www.interviewbit.com/)
- :link: [uCoder](https://ucoder.com.br)
- :link: [LintCode](https://www.lintcode.com/)
- :link: [CodeCombat](https://codecombat.com/)
- :link: [InterviewCake](https://www.interviewcake.com/)
- :link: [At Coder](https://atcoder.jp/)
- :link: [Codility](https://www.codility.com/)
- :link: [ICPC Problem Archive](https://icpc.kattis.com/)
- :link: [Codemia](https://codemia.io/)

0 comments on commit 28df518

Please sign in to comment.