ティラノカップ

アイリス

https://github.com/axew-is-kibago/kibago-teams/tree/main

TypeScript

Azure

React

Firebase

健康志向が集まるかたやぶりの掲示板

Yanai

Yusa

中嶋心

福島宰

Hanu

推しアイデア

Health Care(?)な掲示板作った。

作った背景

筋トレが一人じゃ続かない 筋トレ仲間が欲しい。

推し技術

firebase Authの認証情報をAzureのSQL DBに格納 Function V4を採用

プロジェクト詳細

名前の由来

キバゴのトレーナーアイリスから (ギリシャ語で「虹」➡平和、希望、調和)

使用技術

  • React ( typescript )+vite
  • Azure Static Web App
  • Azure Functions v4(swa内包・nodejs typescript)
  • SQL database
  • firebase auth

アーキテクチャ図

image

ER図

image

functions v4の紹介

参考元Azure / azure-functions-sql-extension

POST

import { app, HttpRequest, HttpResponseInit, InvocationContext, output } from "@azure/functions"; const sqlOutput = output.generic({ type: 'sql', commandtext: 'Users', connectionStringSetting: 'SqlConnectionString' }) export async function addUser(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> { const product = await request.json() context.log("😇: ", product) context.extraOutputs.set(sqlOutput, product); return { status: 201, body: JSON.stringify(product) }; } app.http('addUser', { methods: ['GET', 'POST'], authLevel: 'anonymous', extraOutputs: [sqlOutput], handler: addUser });

GET ( sql文かけます)

import { app, input } from '@azure/functions'; /** * イベントを取得する関数 */ const sqlInput = input.generic({ type: 'sql', commandText: 'select * from Events,Users where Events.fb_uid = Users.fb_uid', commandType: 'Text', // parameters: '@Event={event}', connectionStringSetting: 'SqlConnectionString' }) app.http('GetEvents', { methods: ['GET', 'POST'], authLevel: 'anonymous', // route: 'geteventss/{event}', extraInputs: [sqlInput], handler: async (request, context) => { const products = JSON.stringify(context.extraInputs.get(sqlInput)); return { status: 200, body: products }; } });

Yanai

@Yanai1005