kasemsasa / 305-SOFT-Group-19

0 stars 0 forks source link

US3: Backend Design and Setup with Firebase #11

Open kasemsasa opened 3 months ago

kasemsasa commented 3 months ago

AS A developer at 305Soft, I WANT TO design and set up the backend using Google Firebase according to the 305Soft NoSQL Database Schema Specifications SO THAT the app can efficiently manage user data and event information in a scalable cloud environment.

SCENARIO: Firebase backend setup GIVEN the 305Soft NoSQL Database Schema Specifications and Google Firebase WHEN the database schema is implemented in Firebase, AND the backend setup is completed, THEN the backend supports the app's data requirements seamlessly WITHIN the planned development sprint AND allows for real-time data synchronization WITHIN milliseconds.

jacksonjperry03 commented 3 months ago

Json { "users": [ { "id": 1, "name": "John Doe", "email": "john@example.com", "preferences": ["music", "sports", "technology"], "saved_clubs": [101, 102], "saved_events": [201, 202] }, { "id": 2, "name": "Jane Smith", "email": "jane@example.com", "preferences": ["art", "technology"], "saved_clubs": [102, 103], "saved_events": [201, 203] } ], "clubs": [ { "id": 101, "name": "Music Club", "tags": ["music", "entertainment"], "description": "A club for music enthusiasts", "instagram": "musicclub_insta", "school_website": "http://www.schoolwebsite.com/musicclub" }, { "id": 102, "name": "Sports Club", "tags": ["sports", "fitness"], "description": "Join us for various sports activities", "instagram": "sportsclub_insta", "school_website": "http://www.schoolwebsite.com/sportsclub" }, { "id": 103, "name": "Technology Club", "tags": ["technology", "programming"], "description": "Explore the latest in technology", "instagram": "techclub_insta", "school_website": "http://www.schoolwebsite.com/techclub" } ], "events": [ { "id": 201, "name": "Concert", "tags": ["music", "entertainment"], "date": "2024-03-10", "location": "Main Hall" }, { "id": 202, "name": "Football Match", "tags": ["sports", "fitness"], "date": "2024-03-12", "location": "Stadium" }, { "id": 203, "name": "Tech Conference", "tags": ["technology", "programming"], "date": "2024-03-15", "location": "Conference Center" } ] }


IETF format schema { "type": "object", "properties": { "users": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": "string", "format": "email" }, "preferences": { "type": "array", "items": { "type": "string" } }, "saved_clubs": { "type": "array", "items": { "type": "integer" } }, "saved_events": { "type": "array", "items": { "type": "integer" } } }, "required": ["id", "name", "email"] } }, "clubs": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" } }, "description": { "type": "string" }, "instagram": { "type": "string", "format": "uri" }, "school_website": { "type": "string", "format": "uri" } }, "required": ["id", "name", "tags", "instagram", "school_website"] } }, "events": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" } }, "date": { "type": "string", "format": "date" }, "location": { "type": "string" } }, "required": ["id", "name", "date", "location"] } } }, "required": ["users", "clubs", "events"] }