A lightweight social networking application built with FastAPI, Streamlit, and Python, featuring a separate backend API and interactive web frontend.
- Python — Core programming language
- FastAPI — Asynchronous backend API
- Streamlit — Interactive web frontend
- SQLAlchemy — Database operations and ORM
- ImageKit — Image handling and hosting integration
The application separates the frontend from the backend:
- Frontend: Streamlit provides the user interface and communicates with the API using HTTP requests.
- Backend: FastAPI handles API endpoints, request validation, authentication, file uploads, and application logic.
- Database: SQLAlchemy manages database access and asynchronous database sessions.
- Image handling: ImageKit integration supports image-related functionality.
circlo/
├── app/
│ ├── db.py
│ ├── images.py
│ ├── schemas.py
│ └── users.py
├── frontend.py
├── main.py
├── pyproject.toml
├── requirements.txt
└── uv.lock
- Python
- pip or uv
- Required database and ImageKit configuration
git clone https://github.com/Strangerfuture/mini_social.git
cd circloUsing pip:
pip install -r requirements.txtOr using uv:
uv syncConfigure the database connection, authentication settings, and ImageKit credentials required by the application. Keep secret keys and credentials out of version control.
If main.py defines the FastAPI application as app:
uvicorn main:app --reloadThe API will typically be available at http://127.0.0.1:8000.
Interactive API documentation is usually available at http://127.0.0.1:8000/docs.
In a separate terminal, run:
streamlit run frontend.pyStreamlit will display the local frontend URL, usually http://localhost:8501.
The backend uses asynchronous database sessions and Pydantic schemas to support structured request validation and database operations. The Streamlit frontend communicates with the API to provide the web interface.
Developed by Strangerfuture.