initial commit

This commit is contained in:
lamido 2025-03-06 00:35:32 +01:00
commit ec90b19cf2
7 changed files with 109 additions and 0 deletions

69
README.md Normal file
View File

@ -0,0 +1,69 @@
# FastAPI Project
This is a simple FastAPI project that includes two endpoints: one for user registration and another for user sign-up.
## Project Structure
```
fastapi-project
├── app
│ ├── main.py
│ ├── api
│ │ ├── __init__.py
│ │ └── endpoints
│ │ ├── register.py
│ │ └── signup.py
│ └── models
│ └── __init__.py
├── requirements.txt
└── README.md
```
## Setup Instructions
1. Clone the repository:
```
git clone <repository-url>
cd fastapi-project
```
2. Create a virtual environment:
```
python -m venv venv
```
3. Activate the virtual environment:
- On Windows:
```
venv\Scripts\activate
```
- On macOS/Linux:
```
source venv/bin/activate
```
4. Install the required dependencies:
```
pip install -r requirements.txt
```
## Usage
To run the FastAPI application, execute the following command:
```
uvicorn app.main:app --reload
```
You can access the API documentation at `http://127.0.0.1:8000/docs`.
## Endpoints
- **Register Endpoint**:
- URL: `/register`
- Method: `POST`
- Description: Handles user registration.
- **Sign Up Endpoint**:
- URL: `/signup`
- Method: `POST`
- Description: Handles user sign-up.

0
app/api/__init__.py Normal file
View File

View File

@ -0,0 +1,14 @@
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
router = APIRouter()
class UserRegistration(BaseModel):
username: str
password: str
email: str
@router.post("/register")
async def register(user: UserRegistration):
return {"message": "User registered successfully", "user": user.username}

View File

@ -0,0 +1,8 @@
from fastapi import APIRouter
router = APIRouter()
@router.post("/")
async def sign_in_user(username: str, password: str):
return {"message": "User signed in successfully", "username": username}

15
app/main.py Normal file
View File

@ -0,0 +1,15 @@
from fastapi import FastAPI
from app.api.endpoints import register, signin
app = FastAPI()
app.include_router(register.router, prefix="/register", tags=["register"])
app.include_router(signin.router, prefix="/signin", tags=["signin"])
@app.get("/")
def read_root():
return {"message": "Welcome to the FastAPI application!"}
if __name__ == "__main__":
import uvicorn
uvicorn.run("app.main:app", host="127.0.0.1", port=8000, reload=True)

0
app/models/__init__.py Normal file
View File

3
requirements.txt Normal file
View File

@ -0,0 +1,3 @@
FastAPI
uvicorn
pydantic