About UContacts

Overview

UContacts is a modern, secure REST API service designed for efficient contact management. Built with FastAPI and modern Python practices, it provides a robust solution for storing and managing personal and business contacts.

History

The project was initiated in 2025 by Hrebynakha Anatolii as part of the GoIT Python Web Development course. It has evolved from a simple contact management system into a full-featured API service with advanced capabilities like contact filtering, birthday notifications, and role-based access control.

Key Features

  • Modern Architecture: Built with FastAPI for high performance and async support

  • Secure Authentication: JWT-based authentication with email verification

  • Role-Based Access: Flexible authorization system with admin and user roles

  • Advanced Filtering: Powerful contact search and filtering capabilities

  • Redis Caching: Optimized performance with intelligent caching

  • Birthday Notifications: Smart notification system for upcoming birthdays

  • Docker Support: Easy deployment with Docker and Docker Compose

  • Comprehensive Documentation: Detailed API documentation with Swagger/ReDoc UI

Technology Stack

Backend Framework

  • FastAPI (Python 3.10+)

  • Uvicorn ASGI server

  • SQLAlchemy ORM

  • Alembic migrations

Database & Caching

  • PostgreSQL for persistent storage

  • Redis for caching and session management

Security

  • JWT authentication

  • Password hashing with bcrypt

  • Email verification

  • CORS support

DevOps & Deployment

  • Docker containerization

  • Docker Compose orchestration

  • Nginx reverse proxy

  • GitHub Actions CI/CD

Contributing

UContacts is an open-source project, and contributions are welcome! Here’s how you can contribute:

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Submit a pull request

We appreciate:

  • Bug reports

  • Feature suggestions

  • Documentation improvements

  • Code contributions

Future Plans

We’re continuously working to improve UContacts. Upcoming features include:

  1. Enhanced Contact Management - Contact groups and tags - Bulk operations - Contact sharing

  2. Advanced Security - Two-factor authentication - OAuth2 social login - API key management

  3. Integration Features - Calendar integration - Email client integration - Contact import/export

  4. Performance Improvements - GraphQL API support - Enhanced caching strategies - Real-time updates

License

UContacts is released under the MIT License. See the LICENSE file for more details.

Contact

For support or inquiries, please open an issue on GitHub or contact the maintainers directly.