[Backend] Project Setup - FastAPI Structure and Dependencies #2

Closed
opened 2026-04-06 00:28:28 +02:00 by shoko · 1 comment
Owner

Overview

Set up the backend project structure with FastAPI, including:

  • Python virtual environment setup
  • Directory structure per IMPLEMENTATION_PLAN.md
  • Core dependencies (FastAPI, SQLAlchemy, CrewAI, etc.)
  • Configuration management via environment variables
  • Base API router structure

Dependencies

None - this is the foundation.

Tasks

  • Create directory structure
  • Create with all dependencies:
    • fastapi
    • uvicorn
    • sqlalchemy
    • pydantic
    • python-jose (JWT)
    • passlib (password hashing)
    • crewai
    • anthropic
    • httpx (for AVE Cloud API)
    • python-multipart
  • Create - Configuration from env vars
  • Create - SQLite connection
  • Create - FastAPI app entry point
  • Create - Uvicorn runner
  • Test server starts correctly

Environment Variables

SHELL=/bin/bash
HISTCONTROL=ignoredups
TERM_PROGRAM_VERSION=3.5a
TMUX=/tmp/tmux-1000/default,246008,0
HISTSIZE=1000
HOSTNAME=hermes-shoko
CREDENTIALS_DIRECTORY=/dev/.incus-systemd-credentials
AGENT=1
GPG_TTY=/dev/pts/4
EDITOR=vim
PWD=/home/shoko/repositories/randebu
LOGNAME=shoko
XDG_SESSION_TYPE=tty
container=lxc
OPENCODE_PID=361675
HOME=/home/shoko
OPENCODE=1
LANG=C.UTF-8
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;37;41:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:.7z=01;31:.ace=01;31:.alz=01;31:.apk=01;31:.arc=01;31:.arj=01;31:.bz=01;31:.bz2=01;31:.cab=01;31:.cpio=01;31:.crate=01;31:.deb=01;31:.drpm=01;31:.dwm=01;31:.dz=01;31:.ear=01;31:.egg=01;31:.esd=01;31:.gz=01;31:.jar=01;31:.lha=01;31:.lrz=01;31:.lz=01;31:.lz4=01;31:.lzh=01;31:.lzma=01;31:.lzo=01;31:.pyz=01;31:.rar=01;31:.rpm=01;31:.rz=01;31:.sar=01;31:.swm=01;31:.t7z=01;31:.tar=01;31:.taz=01;31:.tbz=01;31:.tbz2=01;31:.tgz=01;31:.tlz=01;31:.txz=01;31:.tz=01;31:.tzo=01;31:.tzst=01;31:.udeb=01;31:.war=01;31:.whl=01;31:.wim=01;31:.xz=01;31:.z=01;31:.zip=01;31:.zoo=01;31:.zst=01;31:.avif=01;35:.jpg=01;35:.jpeg=01;35:.jxl=01;35:.mjpg=01;35:.mjpeg=01;35:.gif=01;35:.bmp=01;35:.pbm=01;35:.pgm=01;35:.ppm=01;35:.tga=01;35:.xbm=01;35:.xpm=01;35:.tif=01;35:.tiff=01;35:.png=01;35:.svg=01;35:.svgz=01;35:.mng=01;35:.pcx=01;35:.mov=01;35:.mpg=01;35:.mpeg=01;35:.m2v=01;35:.mkv=01;35:.webm=01;35:.webp=01;35:.ogm=01;35:.mp4=01;35:.m4v=01;35:.mp4v=01;35:.vob=01;35:.qt=01;35:.nuv=01;35:.wmv=01;35:.asf=01;35:.rm=01;35:.rmvb=01;35:.flc=01;35:.avi=01;35:.fli=01;35:.flv=01;35:.gl=01;35:.dl=01;35:.xcf=01;35:.xwd=01;35:.yuv=01;35:.cgm=01;35:.emf=01;35:.ogv=01;35:.ogx=01;35:.aac=01;36:.au=01;36:.flac=01;36:.m4a=01;36:.mid=01;36:.midi=01;36:.mka=01;36:.mp3=01;36:.mpc=01;36:.ogg=01;36:.ra=01;36:.wav=01;36:.oga=01;36:.opus=01;36:.spx=01;36:.xspf=01;36:~=00;90:#=00;90:.bak=00;90:.crdownload=00;90:.dpkg-dist=00;90:.dpkg-new=00;90:.dpkg-old=00;90:.dpkg-tmp=00;90:.old=00;90:.orig=00;90:.part=00;90:.rej=00;90:.rpmnew=00;90:.rpmorig=00;90:.rpmsave=00;90:.swp=00;90:.tmp=00;90:.ucf-dist=00;90:.ucf-new=00;90:*.ucf-old=00;90:
XDG_SESSION_CLASS=user
TERM=tmux-256color
LESSOPEN=||/usr/bin/lesspipe.sh %s
USER=shoko
TMUX_PANE=%3
SHLVL=4
XDG_SESSION_ID=c1
XDG_RUNTIME_DIR=/run/user/1000
PATH=/home/shoko/.local/bin:/home/shoko/.opencode/bin:/home/shoko/.local/bin:/home/shoko/.opencode/bin:/home/shoko/.local/bin:/home/shoko/bin:/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
MAIL=/var/spool/mail/shoko
OLDPWD=/home/shoko/repositories/randebu
TERM_PROGRAM=tmux
_=/usr/sbin/env

Reference

See Section 12 for directory structure.

## Overview Set up the backend project structure with FastAPI, including: - Python virtual environment setup - Directory structure per IMPLEMENTATION_PLAN.md - Core dependencies (FastAPI, SQLAlchemy, CrewAI, etc.) - Configuration management via environment variables - Base API router structure ## Dependencies None - this is the foundation. ## Tasks - [ ] Create directory structure - [ ] Create with all dependencies: - fastapi - uvicorn - sqlalchemy - pydantic - python-jose (JWT) - passlib (password hashing) - crewai - anthropic - httpx (for AVE Cloud API) - python-multipart - [ ] Create - Configuration from env vars - [ ] Create - SQLite connection - [ ] Create - FastAPI app entry point - [ ] Create - Uvicorn runner - [ ] Test server starts correctly ## Environment Variables SHELL=/bin/bash HISTCONTROL=ignoredups TERM_PROGRAM_VERSION=3.5a TMUX=/tmp/tmux-1000/default,246008,0 HISTSIZE=1000 HOSTNAME=hermes-shoko CREDENTIALS_DIRECTORY=/dev/.incus-systemd-credentials AGENT=1 GPG_TTY=/dev/pts/4 EDITOR=vim PWD=/home/shoko/repositories/randebu LOGNAME=shoko XDG_SESSION_TYPE=tty container=lxc OPENCODE_PID=361675 HOME=/home/shoko OPENCODE=1 LANG=C.UTF-8 LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;37;41:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.7z=01;31:*.ace=01;31:*.alz=01;31:*.apk=01;31:*.arc=01;31:*.arj=01;31:*.bz=01;31:*.bz2=01;31:*.cab=01;31:*.cpio=01;31:*.crate=01;31:*.deb=01;31:*.drpm=01;31:*.dwm=01;31:*.dz=01;31:*.ear=01;31:*.egg=01;31:*.esd=01;31:*.gz=01;31:*.jar=01;31:*.lha=01;31:*.lrz=01;31:*.lz=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.lzo=01;31:*.pyz=01;31:*.rar=01;31:*.rpm=01;31:*.rz=01;31:*.sar=01;31:*.swm=01;31:*.t7z=01;31:*.tar=01;31:*.taz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tgz=01;31:*.tlz=01;31:*.txz=01;31:*.tz=01;31:*.tzo=01;31:*.tzst=01;31:*.udeb=01;31:*.war=01;31:*.whl=01;31:*.wim=01;31:*.xz=01;31:*.z=01;31:*.zip=01;31:*.zoo=01;31:*.zst=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.jxl=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.m4a=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.oga=01;36:*.opus=01;36:*.spx=01;36:*.xspf=01;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90: XDG_SESSION_CLASS=user TERM=tmux-256color LESSOPEN=||/usr/bin/lesspipe.sh %s USER=shoko TMUX_PANE=%3 SHLVL=4 XDG_SESSION_ID=c1 XDG_RUNTIME_DIR=/run/user/1000 PATH=/home/shoko/.local/bin:/home/shoko/.opencode/bin:/home/shoko/.local/bin:/home/shoko/.opencode/bin:/home/shoko/.local/bin:/home/shoko/bin:/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus MAIL=/var/spool/mail/shoko OLDPWD=/home/shoko/repositories/randebu TERM_PROGRAM=tmux _=/usr/sbin/env ## Reference See Section 12 for directory structure.
shoko added this to the Phase 1 - Core MVP milestone 2026-04-06 00:28:28 +02:00
shoko added the backendinfrastructure labels 2026-04-06 00:28:28 +02:00
shoko closed this issue 2026-04-08 06:35:54 +02:00
Author
Owner

PR #13 has been approved and merged. Backend project setup is complete.

PR #13 has been approved and merged. Backend project setup is complete.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: shoko/randebu#2