Full-stack API Development with FastAPI and PostgreSQL
- API Development: Designed and implemented a robust API using FastAPI, focusing on CRUD operations, JWT authentication, and user management.
- Database Integration: Incorporated PostgreSQL for data persistence and utilized SQLAlchemy for Object-Relational Mapping (ORM). Established database schemas, tables, and managed data with the PgAdmin GUI. Delved deep into SQL queries, joins, and schema migrations with Alembic.
- User Authentication: Incorporated JWT tokens for user authentication and OAuth2 for the login process. Implemented routes for user registration, login, and hashing password functionality.
- Testing: Adopted TDD (Test Driven Development) approach using pytest. Developed fixtures, parameterized tests, and utilized FastAPI TestClient for comprehensive testing.
- Deployment: Deployed the application on Heroku, emphasizing environment variable configuration, database migrations, and Docker containerization. Further, set up and hosted the application on an Ubuntu VM with NGINX, and implemented SSL/HTTPS for secure data transmission.
- CI/CD: Developed a continuous integration and deployment pipeline using GitHub Actions. Automated processes included dependency installation, testing, building Docker images, and deploying to both Heroku and an Ubuntu VM.
- Docker & Containers: Implemented a containerized environment for the application using Docker and Docker Compose, focusing on production and development disparities.
- Best Practices: Implemented CORS, environment variables management, and service management using Systemd.