I remember my first Hacktoberfest so clearly because I was so intimidated by Git and contributing code to other repos, and I was still VERY early in my coding journey and didn't even know how to code, but enjoyed the experience so much!
Hacktoberfest holds a special place in my heart because it's a great way to get started into coding and comfortable with Github. I'm so excited to finally maintain a repo that I can help others experience the same joy I did!
Want to participate in Hacktoberfest? All you have to do is sign up, and then successfully merge 4 pull requests in the month of October! Check out our contributing guidelines and open issues to participate from this repo!
This is a template for an event-based website. The website was created for an event my ERG was hosting (Rainbow Stack Summit), but I decided to make its own repository so others can contribute to it and use it as well!
This is all very much Work In Progress, so if you have any comments or ideas, or want to contribute, feel free to create an issue.
View a live demo of the site hosted on Vercel
Clone the project by running git clone https://github.com/<your-username>/eui-event-template.git
in your terminal, or by using the Github Desktop UI
Cd to the repo on your local machine - cd eui-event-template
Install dependencies by running yarn install
Run yarn start
to start the project
Go to localhost:3000 in your browser to view it!
Note that: If you wish to use the project for your own purposes, you can clone it as mentioned above or check use this template
from the top. If you wish to make a contribution to the repository, you will have to fork the repository as well.
Follow these steps to connect your google sheets file with the app.
##### Data Schema
SPEAKERS SIGN UP
name : string name : string
title: string email : string
team: string
location: string
shortBio: string
pronouns: string
imageLink: string (url of hosted image)
Example sheet: https://docs.google.com/spreadsheets/d/1XgyHXaReTZ3Nq_r7QS18GDvqK_ht010QqnI6PXAnePA/edit?usp=sharing
4. Delete all the code from the editor (inside Code.gs file).
// Get requests
function doGet(req) {
if(req.parameters.sheetName == "Speakers") {
return getSpeakersData()
} else if(req.parameters.sheetName == 'Talks') {
return getTalksData()
}
}
// speaker requestHandler
function getSpeakersData() {
var doc = SpreadsheetApp.getActiveSpreadsheet()
var sheet = doc.getSheetByName("Speakers")
var values = sheet.getDataRange().getValues()
var output = []
for(var i=1; i<values.length; i++) {
var row = {}
row['name'] = values[i][0]
row['title'] = values[i][1]
row['team'] = values[i][2]
row['location'] = values[i][3]
row['shortBio'] = values[i][4]
row['pronouns'] = values[i][5]
row['imageLink'] = values[i][6]
output.push(row)
}
return ContentService.createTextOutput(JSON.stringify({speakers: output})).setMimeType(ContentService.MimeType.JSON)
}
// talk requestHandler
function getTalksData() {
var doc = SpreadsheetApp.getActiveSpreadsheet()
var sheet = doc.getSheetByName("Talks")
var values = sheet.getDataRange().getValues()
var output = []
for(var i=1; i<values.length; i++) {
var row = {}
row['date'] = values[i][0]
row['time'] = values[i][1]
row['title'] = values[i][2]
row['description'] = values[i][3]
row['genre'] = values[i][4]
row['speaker'] = values[i][5].split(',')
row['speakersImageLink'] = values[i][6].split(',')
output.push(row)
}
return ContentService.createTextOutput(JSON.stringify({talks: output})).setMimeType(ContentService.MimeType.JSON)
}
// post requests
function doPost(e){
let action = e.parameter.action
if(action == "signup"){
return signUp(e)
}
}
// signup requestHandler
function signUp(e){
var doc = SpreadsheetApp.getActiveSpreadsheet()
var sheet = doc.getSheetByName("signup") // name of your sheet where user details would be saved.
let user = JSON.parse(e.postData.contents)
sheet.appendRow([user.name,user.email])
return ContentService.createTextOutput(JSON.stringify({status: "success", "data": "my-data"})).setMimeType(ContentService.MimeType.JAVASCRIPT);
}
Want to contribute and improve something here? I would love that! Check out thecontributing guidelines, then head to issues and look for open issues. If you need any help or clarification, just comment on there and let me know. Also, feel free to submit your own issues if you have ideas!
UPDATE: I am so excited by how many folks want to contribute to this repo! I'm trying to create new requests to keep up with the demand but if you have any ideas of how you can improve the app, please feel free to open an issue with your recommendations, and I'll be happy to review it and if it aligns, I'll assign it to you!
Source code in this repository is covered by (i) a dual license under the Server Side Public License, v 1 and the Elastic License 2.0 or (ii) an Apache License 2.0 compatible license or (iii) solely under the Elastic License 2.0, in each case, as noted in the applicable header. The default throughout the repository is a dual license under the Server Side Public License, v 1 and the Elastic License 2.0, unless the header specifies another license.