https://github.com/sauberr/anonymous-note-service
https://github.com/sauberr/anonymous-note-service
alembic fastapi postgresql pydantic python
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/sauberr/anonymous-note-service
- Owner: Sauberr
- License: mit
- Created: 2025-03-03T16:30:30.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-05-08T17:25:12.000Z (about 1 year ago)
- Last Synced: 2025-09-18T14:22:04.972Z (9 months ago)
- Topics: alembic, fastapi, postgresql, pydantic, python
- Language: Python
- Homepage:
- Size: 212 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
### 📝 Anonymous Note Service
Anonymous Note Service is a modern web platform that allows users to create and share notes anonymously. Users can choose to make their notes temporary — with automatic expiration after a set time — or persistent, remaining available until manually deleted. Each note can optionally include an image, offering a flexible and expressive way to communicate.
The backend is built with FastAPI, ensuring high performance and scalability. Localization support is provided by fastapi-babel, making the service accessible to a global audience. User authentication is handled securely using fastapi-users and OAuth2, supporting both traditional and social logins.
The platform leverages PostgreSQL for robust relational data storage. For asynchronous and scheduled background tasks — such as note expiration — the APScheduler library is utilized, ensuring timely and efficient task execution. Administration is streamlined with a custom admin panel built using SQLAdmin, providing powerful tools to manage users and content.
Development and dependency management are optimized with Poetry, replacing pip for better reproducibility and convenience. The application is deployed with Gunicorn, delivering fast response times and efficient resource usage.
For comprehensive testing coverage, we use pytest. This tool is chosen due to its simplicity, flexibility, and popularity within the Python community. Pytest allows us to ensure code quality and reliability, as all core features and endpoints are covered by automated tests. This results in a more robust and maintainable application.
To ensure portability and ease of deployment, the entire application runs inside Docker containers, enabling consistent environments across development, testing, and production.
Overall, Anonymous Note Service offers a secure, scalable, and user-friendly environment for anonymous sharing, combining a thoughtful tech stack with modern best practices in Python web development.
## Stack:
- [Python](https://www.python.org/downloads/)
- [PostgreSQL](https://www.postgresql.org/)
- [FastApi](https://fastapi.tiangolo.com/)
- [Docker](https://www.docker.com/)
## Local Developing
All actions should be executed from the source directory of the project and only after installing all requirements.
1. Firstly, create and activate a new virtual environment and install dependencies with Poetry:
```bash
poetry install
```
2. Run database migrations using Alembic:
```bash
alembic upgrade head
```
## Docker
```bash
docker build .
docker-compose up
```
## License
This project uses the [MIT] license(https://github.com/Sauberr/anonymous-note-service/blob/master/LICENSE)
## Contact
To contact the author of the project, write to email 𝚍𝚖𝚒𝚝𝚛𝚒𝚢𝚋𝚒𝚛𝚒𝚕𝚔𝚘@𝚐𝚖𝚊𝚒𝚕.𝚌𝚘𝚖.