• Townie
    AI
  • Blog
  • Docs
  • Pricing
Log inSign up
Bobbyai

Bobbyai

usefulLimeLion

Public
Like
usefulLimeLion
Home
Code
1
README.md
Branches
1
Pull requests
Remixes
History
Environment variables
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
Code
/
Search
README.md

usefulLimeLion

Burtuk Attendance

Sign Up




Register
<h2>Attendance Form</h2>
<form id="attendanceForm">
    <input type="text" id="rollNumber" placeholder="Roll Number" required><br>
    <input type="text" id="semester" placeholder="Semester" required><br>
    <select id="honour">
        <option value="Economics">Economics</option>
        <option value="English">English</option>
        <option value="Nepali">Nepali</option>
        <option value="History">History</option>
        <option value="Sociology">Sociology</option>
        <option value="Education">Education</option>
        <option value="Geography">Geography</option>
        <option value="B.Com">B.Com</option>
        <option value="Other">Other</option>
    </select><br>
    <input type="text" id="manualHonour" placeholder="Enter Honour (if Other)" style="display:none;"><br>
    <button type="submit">Submit Attendance</button>
</form>

<script>
    document.getElementById("honour").addEventListener("change", function() {
        document.getElementById("manualHonour").style.display = this.value === "Other" ? "block" : "none";
    });

    document.getElementById("signupForm").addEventListener("submit", function(event) {
        event.preventDefault();
        fetch('/register', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({
                name: document.getElementById("name").value,
                email: document.getElementById("email").value,
                password: document.getElementById("password").value
            })
        }).then(response => response.json()).then(data => alert(data.message));
    });

    document.getElementById("attendanceForm").addEventListener("submit", function(event) {
        event.preventDefault();
        fetch('/submit-attendance', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({
                rollNumber: document.getElementById("rollNumber").value,
                semester: document.getElementById("semester").value,
                honour: document.getElementById("honour").value === "Other" ? document.getElementById("manualHonour").value : document.getElementById("honour").value
            })
        }).then(response => response.json()).then(data => alert(data.message));
    });
</script>
const express = require('express'); const fs = require('fs'); const { google } = require('googleapis'); const bodyParser = require('body-parser'); const cors = require('cors');

const app = express(); app.use(cors()); app.use(bodyParser.json());

const credentials = JSON.parse(fs.readFileSync('credentials.json')); const { client_email, private_key } = credentials; const spreadsheetId = '1Jwup9CcanklZfewfHezCCq_mRjDZbq2H8DXaR_-QVVg';

const auth = new google.auth.JWT(client_email, null, private_key, ['https://www.googleapis.com/auth/spreadsheets']); const sheets = google.sheets({ version: 'v4', auth });

let users = [];

app.post('/register', (req, res) => { const { name, email, password } = req.body; if (users.some(user => user.email === email)) { return res.json({ message: "Email already registered!" }); } users.push({ name, email, password }); res.json({ message: "Registration successful!" }); });

app.post('/submit-attendance', async (req, res) => { const { rollNumber, semester, honour } = req.body;

try {
    await sheets.spreadsheets.values.append({
        spreadsheetId,
        range: 'Sheet1!A:D',
        valueInputOption: 'RAW',
        requestBody: {
            values: [[rollNumber, semester, honour, new Date().toLocaleString()]]
        }
    });
    res.json({ message: "Attendance recorded successfully!" });
} catch (error) {
    console.error(error);
    res.status(500).json({ message: "Error submitting attendance" });
}

});

app.listen(3000, () => console.log('Server running on port 3000'));

Code
README.md
FeaturesVersion controlCode intelligenceCLI
Use cases
TeamsAI agentsSlackGTM
ExploreDocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareersBrandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Terms of usePrivacy policyAbuse contact
© 2025 Val Town, Inc.