HomeUniteUs
HomeUniteUs copied to clipboard
Initial Scaffold for FastAPI Implementation
- Parent Issue: #771
Overview
This issue involves creating the foundational scaffold for our FastAPI implementation. The primary goal is to establish a starting point for the migration, focusing on user authentication (sign-in/sign-up) and ensuring early integration with the client interface. The new API should be testable from the client once the basic setup is complete.
Action Items
- [x] Create a "trunk-type" branch named "fastapi-migration" branch in /api-v2 to manage the development of FastAPI migration.
- [x] Set up a new folder structure and add a basic scaffold for the FastAPI application.
- [x] Create updated readme
- [x] Implement basic authentication endpoints:
- [x] User Sign-In
- [ ] User Sign-Up
- [ ] Integrate the initial scaffold with the client to validate the API setup.
- [ ] Review the scaffold and implementation progress with the team.
Resources/Instructions
- Poetry: Use Poetry to manage dependencies for this FastAPI project.
- FastAPI Docs: Official Documentation for routing, dependency injection, and more.
- Authentication: Set up OAuth2 with JWT via FastAPI Security.
- Project Structure: Organize your app using Best Practices.
- Testing: Refer to Testing FastAPI for setting up automated tests.
Partially closed with #787
- [ ] Erik to open PR to connect frontend
update all 9 controllers Done
- [x] security_controller - get rid of
- [x] service_provider_controller - renamed to housing_orgs_controller
Paul working on these (related to intake profile)
- [ ] forms_controller
- [ ] responses_controller
Erik and John working on these:
- [ ] auth_controller
- [ ] users_controller
- [ ] host_controller
- [ ] cooridinator_controller
- [ ] admin_controller
Next Steps
- [ ] rearrange endpoints/controllers as needed
- [ ] Confirm dependencies are updated for each controller changed
- [ ] Marshmellow to Pydantic - need to create schemas
- [ ] Folder structuring
- [ ] Update build scripts (test scripts)
- [ ] Update Docker file configuration
- [ ] documentation
- diagram/descriptions
- important to document authentication process
Endpoints:
- [ ] /users/{userId}
- [ ] /serviceProviders
- [ ] /serviceProviders/{providerId}
- [ ] /host
- [ ] /auth/signup/host
- [ ] /auth/signup/coordinator
- [ ] /auth/signin
- [ ] /auth/resend_confirmation_code
- [ ] /auth/confirm
- [ ] /auth/signout
- [ ] /auth/session
- [ ] /auth/refresh
- [ ] /auth/forgot_password
- [ ] /auth/forgot_password/confirm
- [ ] /auth/user
- [ ] /auth/private
- [ ] /auth/google
- [ ] /auth/google/sign_up
- [ ] /auth/google/sign_in
- [ ] /auth/new_password
- [ ] /auth/invite
- [ ] /auth/confirmInvite
- [ ] /forms
- [ ] /forms/{form_id}
- [ ] /responses/{f