TangilHossain/bcf-2026-hackathon-preliminary

โ˜… 1Forks 0PythonGitHub โ†—Compare

README

BUET CSE FEST Hackathon 2026

AI / API Preliminary Round โ€“ Starter Repository

Welcome to the official starter repository for the
AI / API Preliminary Round of BUET CSE FEST Hackathon 2026.

This repository contains:

  • The complete problem statement
  • Database setup files
  • External API specifications
  • Testing tools
  • Submission templates

You are expected to fork this repository and build your solution inside it.


Quick Start

Follow these steps in order.

Step 1: Fork This Repository

Click Fork on GitHub and create your own copy.

Then clone it:

git clone <your-fork-url>
cd <repo-name>

Step 2: Read the Problem Statement

Go to:

problem-statement/problem-statement.md

This file explains everything.

Start here.


Step 3: Choose Your Backend Technology

You may use any backend framework or language.

Examples:

  • Python (Flask / FastAPI / Django)
  • Node.js (Express / NestJS)
  • TypeScript
  • Any other server framework

All your backend code must go inside:

backend/

Step 4: Set Up the Database

Choose ONE method:

Option A: Using Docker (Recommended)

Follow:

problem-statement/run-postgres-with-docker.md

Option B: Local PostgreSQL

Follow:

problem-statement/run-postgres-locally.md


Step 5: Build Your Backend

Inside backend/, create your server.

Your server must provide:

  • GET /health
  • POST /query

As described in the problem statement.


Step 6: Configure hackathon.yml

Open:

hackathon.yml

Edit it to match your backend.

Templates are available in:

hackathon.yml.templates/

Copy the closest template and modify it.

Example:

cp hackathon.yml.templates/hackathon.python.template.yml hackathon.yml

Step 7: Create .env.example

Inside backend/, create .env from .env.example:

cp .env.example .env
  • Now fill up the env vars
DB_HOST=
DB_PORT=
DB_NAME=
DB_USER=
DB_PASSWORD=
GEMINI_API_KEY=

PORT=8080

Do NOT commit .env Put it in .gitingore.


Step 8: Test Your Server

Start your server using your commands.

Check:

curl http://localhost:8080/health

You should see:

{
  "status": "ok",
  "database": "connected"
}

Step 9: Run the Checker

Go to:

cd checker
python checker.py -b http://localhost:8080

Fix errors until tests pass.


๐Ÿ“ Repository Structure (Important)

.
โ”œโ”€โ”€ backend/              โ† Your server code goes here
โ”‚
โ”œโ”€โ”€ checker/              โ† Testing scripts
โ”‚
โ”œโ”€โ”€ data/                 โ† Database dump
โ”‚
โ”œโ”€โ”€ external-apis/        โ† API collections (Bruno)
โ”‚
โ”œโ”€โ”€ hackathon.yml         โ† Automation config (REQUIRED)
โ”‚
โ”œโ”€โ”€ hackathon.yml.templates/ โ† Ready-made templates
โ”‚
โ”œโ”€โ”€ problem-statement/    โ† Full documentation
โ”‚
โ””โ”€โ”€ README.md             โ† You are reading this

Do not move or rename these folders.


๐Ÿ“š Important Documents

Purpose File
Main instructions problem-statement/problem-statement.md
Database setup problem-statement/run-postgres-*.md
Schema problem-statement/schema-description.md
Submission problem-statement/submission_guideline.md
External APIs problem-statement/opeapi-specification.yml

๐ŸŒ External APIs

External API definitions are provided in:

external-apis/

and

problem-statement/opeapi-specification.yml

Use these for tool selection.

Do NOT use other APIs.


๐Ÿงช Automated Evaluation

Your project will be evaluated automatically.

The judge will:

  1. Clone your repository
  2. Read hackathon.yml
  3. Generate .env
  4. Install dependencies
  5. Start your server
  6. Call /health
  7. Run checker

If any step fails, your submission may fail.


๐Ÿ“ค Submission

Read:

problem-statement/submission_guideline.md

Then submit your GitHub repository link via the Google Form.


โš ๏ธ Common Mistakes

โŒ Writing code outside backend/ โŒ Missing hackathon.yml โŒ Committing .env โŒ Wrong server port โŒ Missing /health endpoint โŒ Hardcoding answers

Avoid these.


๐Ÿ’ก Tips for Beginners

  • Start simple
  • First make /health work
  • Then connect DB
  • Then answer 1โ€“2 queries
  • Then add LLM
  • Then add external APIs

Do not try to do everything at once.


๐Ÿค Support

If you are confused:

  1. Re-read the problem statement
  2. Check example templates
  3. Just use chatGPT

Good luck, and happy hacking!


Contributors

suhashinesTangilHossainanim200prithu-anan

Issues