Inspiration

I created AdmitPulse while applying to university.

Admission data changes constantly. Applicants must repeatedly check different university websites, compare scores, calculate rankings, and decide where to submit their documents.

AdmitPulse brings this scattered information into one clear dashboard.

What it does

AdmitPulse monitors public university admission data and shows applicants:

  • available places;
  • submitted applications;
  • estimated ranking;
  • competition level;
  • current admission status;
  • source update time and reliability.

Users can also receive Telegram alerts when their position changes, competition increases, or new data appears.

How I built it

The backend uses Python, FastAPI, SQLAlchemy, SQLite, and APScheduler.

It:

  • collects HTML and XML data from universities;
  • converts different formats into one structure;
  • stores current and historical records;
  • calculates rankings and admission status;
  • schedules automatic updates;
  • prepares Telegram notifications;
  • provides a REST API.

The frontend uses React and TypeScript.

The application is tested with pytest and deployed on a Linux VPS using Docker, Nginx, and systemd.

I used OpenAI Codex to inspect the repository, plan milestones, implement features, write tests, review changes, and diagnose failures.

Challenges

The main challenge was that universities do not provide a standard admissions API.

Every source has different page structures, identifiers, update schedules, and data formats. Sources can also return outdated, incomplete, or unavailable information.

AdmitPulse must distinguish between live, stale, unavailable, and unverified data. This is essential because incorrect information could affect an applicant’s decision.

Ranking also requires careful handling because applicants may have equal scores and some sources omit important fields.

Accomplishments

I built a working MVP with:

  • live monitoring for the first supported university;
  • applicant ranking and admission-status calculations;
  • scheduled updates;
  • Telegram notifications;
  • historical records;
  • automated backend tests;
  • Docker deployment;
  • backup and maintenance scripts;
  • a catalog of 47 universities;
  • identified data sources for 33 universities.

The platform also clearly reports whether data is live, stale, unavailable, or unsupported instead of presenting unreliable information as current.

What I learned

I learned that collecting data is easier than proving that it can be trusted.

A reliable monitoring platform needs validation, normalization, update tracking, error handling, and transparent source statuses.

I also gained practical experience with backend development, API design, databases, scheduled jobs, data parsing, automated testing, Docker, Linux administration, production debugging, and AI-assisted development.

What’s next

The next goal is to support more verified universities while maintaining data reliability.

Planned features include:

  • historical competition charts;
  • estimated admission thresholds;
  • more universities and countries;
  • personalized program comparisons;
  • deadline reminders;
  • explanations of ranking changes;
  • alternative program recommendations;
  • dashboards for schools and consultants;
  • API access for education services.

OpenAI models could turn raw admission data into clear explanations: what changed, how serious it is, and which alternatives the applicant should consider.

My goal is to make AdmitPulse a reliable decision-making tool for applicants, rather than another university directory.

Built With

Share this project:

Updates

posted an update

Since July 15, AdmitPulse has evolved from a single BSEU admission monitor into a broader decision-support platform for Belarusian applicants. We added a verified catalog of 47 universities, university and program pages, 17 audited BSEU programs with 57 admission offerings, URL-based program search and filters, explainable recommendations, university comparison, anonymous shortlists, watchlists, personal change feeds, and secure Telegram notifications. The platform now uses a registry-based adapter architecture, scheduled data refreshes, historical snapshots, source provenance, idempotent imports, Alembic migrations, automated tests, backups, rollback procedures, and production deployment through Nginx and systemd. Next, we are expanding official-source monitoring to additional universities, adding subject compatibility, historical trends, education costs, dormitory information, cross-device profiles, and more personalized admission alerts.

Log in or sign up for Devpost to join the conversation.