Skip to content

martinkoutecky/problem-solver

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Web-based research system that automates mathematical problem solving and proof generation using LLMs.

  • It doesn't empower formal mathmetical verification using LEAN or alike systems.
  • This project focuses on building scaffolding around the model with final-step human verification and guidance.
  • Available at bolzano.app

Technical details

Bolzano uses Bun as its runtime & package manager. This git respository is a monorepo consisting of frontend, backend and shared packages, all written in TypeScript.

Frontend

  • Written in React@19 (SPA), Tailwind@4.
  • Using Vite, Tanstack Router & Query.

The design has not been made responsive yet. Therefore, it is recommended to use devices with larger viewport rather than phones.

Backend

  • HTTP server runs on Elysia.
  • LLM requests are routed throught OpenRouter.
  • Custom Job Manager based on BullMQ with connection to self-hosted Redis.
  • Database (Postgres) & Auth is hosted by Supabase.
  • All DB requests should be made through DrizzleSupabaseSDK is used only for .auth management.

Running the project

.env

The .env file should be located in the root directory. Access for backend & frontend is specified through run command in scripts. Have a look at .env.example to see all required variables.

Production

Bolzano is currently hosted on Railway. Railway handles everything on it's own based on the project structure therefore no config is required.

To build the production-ready distribution, run

bun run build

in the root directory. This will build shared, backend & frontend. Each build creates a dist folder in the corresponding package directory.

You can then run the build with

bun run start

And everything should be accessible from within one URL.

How does it work?

The production-ready distribution is based on running the built backend. A single file backend/dist/index.js handles everything. It's an HTTP server that serves the backend endpoints as expected but it also serves everything from within frontend/dist. Static files should be included in frontend/src/static.

This is possible thanks to Vite which builds the whole frontend and creates a bunch of .html, .css and .js files which are linked together and can be served statically. And thus by our backend.

This is different from the development environment in which you use 2 differnet URLs to access your project – one for your frontend, one for your backend. Backend only serves the API endpoints in this case and frontend serves all the static files & the interface. It could be combined into singular page even in the dev env but for better developer experience we're using Vite which handles compiling TypeScript to JavaScript, linking everything, optimizing etc. And that requires the frontend to run as its separate process.

About

Automatic researcher solving open problems

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 98.6%
  • CSS 1.1%
  • HTML 0.3%