<aside> 💰 This is the backend design spec for CURaise, our fundraising platform.
</aside>
id: primary keyname: Stringnetid: String (UNIQUE)venmo_username : String (UNIQUE)venmo_id : String (UNIQUE) (calculated by venmo_username)clubs: Foreign Key (clubs a student has joined)email: String (UNIQUE) email, for authentication purposespassword: String (UNIQUE) password, for authentication purposesid: primary keyname: Stringdescription: Stringvenmo_username: String (UNIQUE)venmo_id : String (UNIQUE) (calculated by venmo_username)members Foreign Key (members of the club)fundraisers: Foreign Key list of Fundraisers (one-to-many)email: String (UNIQUE) email, for authentication purposespassword: String (UNIQUE) password, for authentication purposesid: primary keyclub_id : foreign key (The ID of the club) (one-to-one)title: Stringdescription: Stringactive_status: boolean True or False (CASE INSENSITIVE)created_datetime: Datetime IN UTC (FORMAT AT ABOVE)
last_modified_datetime: Datetime in UTC (FORMAT AT ABOVE)
start_datetime: Datetime in UTC (FORMAT AT ABOVE)end_datetime: Datetime in UTC (FORMAT AT ABOVE)items Foreign Key fundraising item (one-to-many)members: list of strings, quota
transactions: array of all transactions (one-to-many)id: primary keyfundraiser: links to Fundraiser (many-to-one)name: Stringprice: Floattransactions: Foreign Key one-to-many with transactionimage: String (link to URL of image)
description: Stringid: primary keyreference_string: a long, unique reference string based on …fundraiser: Fundraiseradded_timestamp: db.DateTimeitem : fundraiser itempayer: Studentstatus: booleanreferrer: User (optional)/api/students/signup (POST) → create a student ✅
// post body
{
"name": string,
"netid": string,
"venmo_username": string,
"venmo_id": string,
"email": string,
"password": string
}
/api/students/<student_id> (GET) → get a student by id ✅
/api/students/netid/<student_netid> (GET) → get a student by netid ✅
/api/students/<student_id>/edit (PUT) → update a student by student_id ✅
// post body
{
"student_id": string,
"netid": string,
"venmo_username": string,
"venmo_id": string,
"email": string,
"password": string
}
/api/students/netid/<student_netid>/edit (PUT) → update a student by student netid ✅
/api/students/<student_id> (DELETE) → DELETE a student by id ✅
/api/students/netid/<student_netid> (DELETE) → DELETE a student by netid ✅