You've already forked Travel-Agent
151 lines
2.7 KiB
Markdown
151 lines
2.7 KiB
Markdown

|
|
|
|
# ✈️ Travel agent bot
|
|
|
|
This bot will help you organise and plan your travels.
|
|
|
|
## ⚙️ Technologies
|
|
|
|
### Python
|
|
|
|
Python is used successfully in thousands of real-world business applications around the world, including many large and mission critical systems.
|
|
|
|
### aiogram
|
|
|
|
aiogram is a modern and fully asynchronous framework for Telegram Bot API using asyncio and aiohttp.
|
|
|
|
### SQLAlchemy
|
|
|
|
SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.
|
|
|
|
It provides a full suite of well known enterprise-level persistence patterns, designed for efficient and high-performing database access, adapted into a simple and Pythonic domain language.
|
|
|
|
### PostgreSQL
|
|
|
|
PostgreSQL is a powerful, open source object-relational database system with over 35 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.
|
|
|
|
## 🛠️ Local development & testing
|
|
|
|
### Clone repository with git
|
|
|
|
```bash
|
|
git clone https://github.com/Central-University-IT-prod/backend-devitq.git
|
|
```
|
|
|
|
### Navigate to the project directory
|
|
|
|
```bash
|
|
cd backend-devitq
|
|
```
|
|
|
|
### Create virtual enviroment & activate it
|
|
|
|
#### Windows
|
|
|
|
```cmd
|
|
python -m venv venv
|
|
venv\Scripts\activate
|
|
```
|
|
|
|
#### Linux
|
|
|
|
```bash
|
|
python -m venv venv
|
|
source venv/bin/activate
|
|
```
|
|
|
|
### Install dev requirements
|
|
|
|
```bash
|
|
pip install -r requirements/dev.txt
|
|
```
|
|
|
|
### Setup .env file
|
|
|
|
#### Windows
|
|
|
|
```cmd
|
|
copy template.env .env
|
|
```
|
|
|
|
#### Linux
|
|
|
|
```bash
|
|
cp template.env .env
|
|
```
|
|
|
|
And replace all default values with actual values
|
|
|
|
### Generate new migrations(if needed)
|
|
|
|
```bash
|
|
alembic -c app/alembic.ini revision --autogenerate
|
|
```
|
|
|
|
### Apply migrations with alembic
|
|
|
|
```bash
|
|
alembic -c app/alembic.ini upgrade head
|
|
```
|
|
|
|
### Run bot in development mode
|
|
|
|
```bash
|
|
python -m app
|
|
```
|
|
|
|
## 🚀 Deploying
|
|
|
|
Our app uses docker compose for production deployment.
|
|
|
|
### Clone repository with git
|
|
|
|
```bash
|
|
git clone https://github.com/Central-University-IT-prod/backend-devitq.git
|
|
```
|
|
|
|
### Navigate to the project directory
|
|
|
|
```bash
|
|
cd backend-devitq
|
|
```
|
|
|
|
### Setup .env file
|
|
|
|
#### Windows
|
|
|
|
```cmd
|
|
copy template.env .env
|
|
```
|
|
|
|
#### Linux
|
|
|
|
```bash
|
|
cp template.env .env
|
|
```
|
|
|
|
And replace all default values with actual values
|
|
|
|
### Pull actual docker images
|
|
|
|
```bash
|
|
docker compose pull
|
|
```
|
|
|
|
### Start containers (in detached mode)
|
|
|
|
```bash
|
|
docker compose up -d --build
|
|
```
|
|
|
|
## 📝 Notes
|
|
|
|
Set this in .env file when using docker compose:
|
|
|
|
```text
|
|
BOT_TOKEN = 6943803094:AAEHG-vOP2pNEuxb9rDIhisiQuGLuBIjx1Q
|
|
SQLALCHEMY_DATABASE_URI = postgresql://postgres:wTAb5KoZ4dBtscg@localhost:5432/postgres
|
|
```
|
|
|
|
I thought up the architecture of the project myself, I won't mind feedback on it)
|