Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
CristyNel committed Aug 27, 2024
1 parent 36f3307 commit bc957e3
Showing 1 changed file with 227 additions and 54 deletions.
281 changes: 227 additions & 54 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,60 @@
# CV Management System API
### **CV Management System API 📜 ✍️**
<br>

**This project provides a platform for managing user data and generating custom CV templates.**
<br>

![](https://i.imgur.com/waxVImv.png)
<br>

![freeCodeCamp Social Banner](https://venngage-wordpress.s3.amazonaws.com/uploads/2021/11/section-3-resume-banner-1-1.png)
<div align="center" markdown="1">

![](https://i.imgur.com/waxVImv.png)

<br>

[![GitHub Repo stars](https://img.shields.io/badge/Project%20mindmap-Miro-yellow?logo=miro)](https://miro.com/app/board/uXjVK6HA_1A=/)
[![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> -->


<br>

### **Table of contents**
<br>

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](#github-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)
<br>

### **Directory structure Hierarchy**
<br>

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

## 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 +79,33 @@ 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
```
<br>

## Components:
### **Components:**
<br>

Backend (Go) : HandlMYSQL_
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.

MYSQL_s 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">↥ Top 🔝</a></b>
</div>

## Prerequisites:
### **Prerequisites:**
<br>

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


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

### **Environment variables file: .env file**
<br>

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

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

### **Install Basic Tools:**
<br>

```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">↥ Top 🔝</a></b>
</div>

### **Replace Paths**
<br>

```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">↥ Top 🔝</a></b>
</div>

### **Create DB, users table**
<br>

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

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

### **Verify successful import**
<br>

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

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

### **Change DB user password**
<br>

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

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

### **Build the backend API**
<br>

```sh
cd $PathCvProject/api
Expand All @@ -135,16 +217,25 @@ export DB_PASSWORD="?????????????"
./CV_project
```

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

## BFF Flask app setup frontend
<br>

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

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


### SSH conection
### **Github SSH conection**
<br>

```sh
GitSshKey="/PathTo/.ssh/github_rsa"
Expand All @@ -158,7 +249,12 @@ git config --global http.sslBackend "openssl"
ssh -T [email protected]
```

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

### **Github commit**
<br>

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

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

### **Start the project: Makefile**
<br>

```sh
cd $PathCvProject
make kill # Stop and kill processes running on ports 8080, 5000, and 3306
make # Build and start the services
make docker # # Start services using Docker Compose
cd $PathCvProject && make
```

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

```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
### ****Docker****


| | 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">↥ Top 🔝</a></b>
</div>

### **Browser links**
<br>

- [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**
<br>

<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:**
<br>

- [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/)
<br>

### **Other free resources**
<br>

https://miro.com/app/board/uXjVK6HA_1A=/
+ [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)

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

http://127.0.0.1:5000/template2
### **Coding Practice Sites :zap:**
<br>

http://127.0.0.1:5000/template3
- :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 bc957e3

Please sign in to comment.