Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gunslaveunit/hotopia

Helps in choosing a hobby
https://github.com/gunslaveunit/hotopia

alembic docker fastapi kivy kivymd python sqlalchemy

Last synced: 9 days ago
JSON representation

Helps in choosing a hobby

Awesome Lists containing this project

README

        

![Client interface](client/collage.png)

# HOTOPIA
"Hobby utopia", hobby search application.

This project contains two main parts:
- Client - a mobile application, build with Kivy and KivyMD
- Server - FastAPI, SQLAlchemy, Redis

The common part stores validation schemas and URLs.

Python version - 3.12.

## Getting started
So, clone this repo:
```
git clone https://github.com/gunslaveunit/hotopia
cd hotopia/
```
Add path/to/a/project/hotopia to system variables, so Python can look for common, server and client.

Configure your .env file. For example:
```
HOST=0.0.0.0
PORT=8000
DEBUG=True
RELOAD=True
DB_URL=sqlite+aiosqlite:///hotopia.sqlite3 # or for PostgreSQL: postgresql+asyncpg://postgres:postgres@localhost:5432/hotopia
```

### Manual
Create virtual environment:
```
python -m venv venv
source venv/bin/activate # or without "source" for Windows
```

Install requirements for both client and server:
```
pip install -r server/requirements.txt
pip install -r client/requirements.txt
```

Run migrations:
```
cd server/
alembic upgrade head
cd ..
```

Run both parts:
```
python server/src/run.py
python client/src/run.py
```

### Docker
You can run a server part using Docker Compose:
```
docker-compose up
```