Skip to content

Research

Navheen edited this page Jul 27, 2025 · 9 revisions

Technology Research & Justification

This section documents our research, evaluation, and final decisions regarding the technologies used in our project: a Course Comparison Web Application using Sentence Transformers


Overview of Technology Decisions

Area Final Technology Alternatives Considered Justification Summary
Backend FastAPI Flask, Django REST Fast, async, OpenAPI built-in
Frontend React Svelte Large ecosystem, reusable components
Hosting Render Firebase, Vercel Supports full-stack apps, simple setup
NLP Model Sentence Transformers OpenAI Embedding, BERT variants Pretrained, task-optimized, accessible

Backend Framework Research

Final Choice: FastAPI

FastAPI is a modern Python web framework optimized for APIs and asynchronous operations. It auto-generates OpenAPI documentation and offers high performance

Alternatives Considered

Framework Pros Cons
Flask Lightweight, easy to learn Manual setup for async, no built-in docs
Django REST Built-in admin, full-featured Heavier setup, less flexible for APIs only

Why We Chose FastAPI

  • Async support for handling multiple concurrent API calls efficiently
  • Swagger documentation auto-generated by FastAPI
  • Well-documented and developer-friendly syntax
  • Growing community and production use by companies like Netflix and Microsoft

Learning Resources


Frontend Framework Research

Final Choice: React

React is a declarative JavaScript library for building user interfaces. It uses components and a virtual DOM for efficient updates.

Alternatives Considered

Framework Pros Cons
Svelte Very lightweight and fast Less widely adopted, limited libraries

Why We Chose React

  • Familiarity and strong community support
  • Reusable components and modular structure
  • Ideal for single-page applications
  • Compatible with many third-party tools and libraries

Learning Resources


Hosting & Deployment Platform Research

Final Choice: Render

Render is a cloud platform for hosting full-stack applications with support for both frontend and backend deployments.

Alternatives Considered

Platform Pros Cons
Firebase Great for static hosting, built-in DB Not ideal for FastAPI backend
Vercel Great for frontend hosting Backend/serverless functions are limited

Why We Chose Render

  • Supports both FastAPI backend and React frontend
  • Provides custom domains, SSL, Git integration
  • Simplifies CI/CD pipeline for full-stack deployment
  • Free tier suitable for development purposes

Learning Resources


NLP Tool: Sentence Transformers

Final Choice: Sentence Transformers

Sentence Transformers provide state-of-the-art performance for semantic search and sentence similarity.

Alternatives Considered

Model Pros Cons
OpenAI Embedding Powerful, easy to use Requires paid API usage
BERT via HuggingFace Flexible More setup and tuning needed

Why We Chose Sentence Transformers

  • Pretrained models for semantic search and ranking
  • Available via HuggingFace and sentence-transformers Python package
  • Easily integrates with Python backends like FastAPI
  • Active research and academic support

Learning Resources


References

- https://fastapi.tiangolo.com/
- https://render.com/docs/deploy-fastapi
- https://reactjs.org/docs/getting-started.html
- https://www.youtube.com/watch?v=0sOvCWFmrtA
- https://sbert.net/
- https://huggingface.co/sentence-transformers
- https://vitejs.dev/guide/
- https://render.com/docs/deploy-react

Reflection on Self-Directed Learning

All team members engaged in independent exploration of new technologies not covered in class (e.g., FastAPI). The decision process included:

  • Comparing multiple tools through documentation and benchmarks
  • Watching tutorials and reading guides
  • Finalizing stack based ease of use, and long-term suitability

Clone this wiki locally