π The official platform for Farmingdale State Hacks RamHacks '25, built with cutting-edge web technologies to deliver an exceptional event experience.
- 1. Overview & Introduction
- 2. Feature Highlights
- 3. Architecture & Technology Stack
- 4. Getting Started
- 5. Usage & Workflows
- 6. Limitations, Known Issues & Future Roadmap
- 7. Contributing & Development Guidelines
- 8. License, Credits & Contact
- 9. Appendix
The RamHacks '25 Website is the official online platform for the RamHacks 2025 hackathon, organized by Farmingdale State Hacks. This project serves as the central hub for all event-related information, aiming to provide a seamless and engaging experience for participants, sponsors, and organizers.
Purpose & Goals:
- Inform: Provide comprehensive details about RamHacks '25, including FAQs, sponsors, and featured clubs.
- Engage: Create an inviting and accessible online presence that encourages participation and excitement for the event.
- Support: Streamline event logistics by acting as a central point of reference for all stakeholders.
- Showcase: Highlight the innovative spirit of Farmingdale State College's hacking community.
Why it Matters / Problem it Solves: In today's fast-paced digital world, a well-structured and user-friendly website is crucial for the success of any major event. This application solves the challenge of consolidating diverse information into an easily navigable and aesthetically pleasing platform, ensuring that potential attendees and partners can quickly find what they need, understand the value proposition of RamHacks, and prepare for an enriching experience. It prevents information fragmentation and provides a single source of truth for the event.
Target Audience:
- Prospective Hackathon Participants: Students from Farmingdale State College and beyond interested in joining the hackathon.
- Current Participants: Attendees looking for the latest announcements and resources during the event.
- Sponsors & Partners: Organizations seeking information about sponsorship opportunities and event impact.
- Farmingdale State College Community: Faculty, staff, and students interested in the hackathon's activities.
- Event Organizers & Volunteers: For managing and disseminating information efficiently.
The RamHacks '25 website is designed with a focus on delivering a modern, responsive, and informative experience.
- β
Dynamic Event Information:
- Comprehensive About section detailing the hackathon's mission and history.
- Detailed FAQ section to address common queries efficiently.
- Dedicated Sponsors page to acknowledge and showcase our valuable partners.
- Clubs showcase to highlight participating student organizations.
- π¨ Modern & Responsive User Interface:
- Built with Tailwind CSS v4 for highly customizable and efficient styling.
- Utilizes shadcn/ui components for a consistent, accessible, and beautiful UI experience.
- Fully responsive design ensures optimal viewing across all devices (desktops, tablets, mobiles).
- π‘ Includes a Theme Toggle (
lib/components/theme-toggle.tsx) for seamless light/dark mode switching.
- βοΈ Robust & Scalable Architecture:
- Powered by TanStack Start, React 19 (with React Compiler), and TanStack Router for a high-performance, maintainable frontend.
- TanStack Query for efficient and reliable server-state management.
- Drizzle ORM with PostgreSQL for type-safe and performant database interactions.
- Containerized with Docker for consistent development and production environments.
- π§ͺ Comprehensive Testing & Quality Assurance:
- Extensive End-to-End (E2E) testing using Cypress and Playwright to ensure critical user flows are bug-free.
- Integrated ESLint and Prettier for consistent code style and quality across the codebase.
- GitHub Actions for automated CI/CD, running tests and deployments on every push.
- π Security & Reliability:
- Sentry integration for real-time error monitoring and performance tracing in production.
- XSS Protection utilities (
lib/utils/xss.ts) to mitigate cross-site scripting vulnerabilities. - Environment variable management via
.envfor secure configuration.
The RamHacks '25 website employs a modern, full-stack architecture designed for performance, scalability, and developer experience. It leverages the power of server-side rendering (SSR) and client-side interactivity provided by TanStack Start, backed by a robust PostgreSQL database.
This diagram illustrates the primary components and their interactions within the application ecosystem.
graph TD
A[Client Browser] -->|Requests UI/Data| B(TanStack Start Frontend)
B -->|API Requests| C(TanStack Start Backend API)
C -->|ORM Interactions| D(Drizzle ORM)
D -->|SQL Queries| E[PostgreSQL Database]
subgraph Development/Deployment
F[Developer] -->|Code/Push| G(GitHub)
G -->|CI/CD Trigger| H(GitHub Actions)
H -->|Build/Test/Deploy| I(Docker)
I --> J(Production Server)
end
B --- K(Sentry Monitoring)
C --- K
J --- K
style A fill:#DCEFFB,stroke:#3498DB,stroke-width:2px,color:#333;
style B fill:#E6FFE6,stroke:#2ECC71,stroke-width:2px,color:#333;
style C fill:#FFE6E6,stroke:#E74C3C,stroke-width:2px,color:#333;
style D fill:#F5ECFF,stroke:#9B59B6,stroke-width:2px,color:#333;
style E fill:#D0E6F0,stroke:#3498DB,stroke-width:2px,color:#333;
style K fill:#F9DCEB,stroke:#E91E63,stroke-width:2px,color:#333;
style G fill:#E8E8E8,stroke:#666,stroke-width:1px,color:#333;
style H fill:#E0E0FF,stroke:#6A5ACD,stroke-width:1px,color:#333;
style I fill:#DCF0E6,stroke:#27AE60,stroke-width:1px,color:#333;
style J fill:#FFEDCC,stroke:#F39C12,stroke-width:1px,color:#333;
- Client Browser (A): The user's web browser, which interacts with the deployed application.
- TanStack Start Frontend (B):
- The primary user interface, built with React 19 and TanStack Router.
- Responsible for rendering UI components, handling user input, and making API requests.
- Leverages TanStack Query for efficient data fetching and caching on both client and server.
- Uses Tailwind CSS v4 and shadcn/ui for styling and UI components.
- TanStack Start Backend API (C):
- The server-side component of the TanStack Start application, handling API routes (e.g.,
app/routes/api/health). - Processes incoming requests, interacts with the database via Drizzle ORM, and serves data to the frontend.
- Handles server-side rendering (SSR) for initial page loads, improving performance and SEO.
- The server-side component of the TanStack Start application, handling API routes (e.g.,
- Drizzle ORM (D):
- A TypeScript ORM used to interact with the PostgreSQL database.
- Provides type-safe database queries and schema migrations (
drizzle.config.ts,.drizzle/). - Decouples the application logic from raw SQL, enhancing maintainability.
- PostgreSQL Database (E):
- The persistent data store for the application, managed locally via
docker-compose.yml. - Stores all event-related data, such as FAQs, sponsor information, and potentially user/registration data.
- The persistent data store for the application, managed locally via
- Sentry Monitoring (K):
- Integrated error tracking and performance monitoring platform.
- Captures and reports errors from both client-side (frontend) and server-side (backend) components, providing real-time insights into application health.
- GitHub Actions (H):
- Automated CI/CD workflows (
.github/workflows/). - Runs tests, builds the application, and deploys it upon code changes, ensuring continuous quality and delivery.
- Automated CI/CD workflows (
- Docker (I):
- Containerization technology used for packaging the application and its dependencies into a consistent, portable unit (
Dockerfile,docker-compose.yml). - Facilitates easy local development setup (e.g., database service) and consistent deployment environments.
- Containerization technology used for packaging the application and its dependencies into a consistent, portable unit (
| Category | Technology | Description |
|---|---|---|
| Framework | TanStack Start | A full-stack React framework for building performant, type-safe web applications. |
| Frontend Library | React 19 | JavaScript library for building user interfaces, leveraging the new React Compiler. |
| Routing | TanStack Router | Type-safe, file-based routing for React applications, integrated with TanStack Start. |
| Data Fetching | TanStack Query | Powerful asynchronous state management library for React, enabling efficient data fetching and caching. |
| Styling | Tailwind CSS v4 | A utility-first CSS framework for rapidly building custom designs. |
| UI Components | shadcn/ui | Reusable UI components built with Radix UI and Tailwind CSS, offering high customizability. |
| Database ORM | Drizzle ORM | TypeScript ORM for SQL databases, providing type safety and powerful schema migrations. |
| Database | PostgreSQL | A powerful, open-source relational database system. |
| Containerization | Docker | Platform for developing, shipping, and running applications in containers. |
| Package Manager | Bun | A fast, all-in-one JavaScript runtime, bundler, transpiler, and package manager. |
| Testing (E2E) | Cypress & Playwright | Robust end-to-end testing frameworks for modern web applications. |
| Error Monitoring | Sentry | Real-time error tracking, performance monitoring, and crash reporting. |
| CI/CD | GitHub Actions | Automation platform for building, testing, and deploying code directly from GitHub. |
Follow these steps to set up and run the RamHacks '25 website on your local machine.
Before you begin, ensure you have the following installed:
- Node.js: The project requires a recent version of Node.js.
- π Check version:
node -v - The project recommends the latest stable version (e.g.,
node:22-bullseye-slimin Dockerfile). It's best to usenvm installif you have.nvmrcsupport, or install Node.js v20+.
- π Check version:
- Bun: The preferred package manager and JavaScript runtime for this project.
- π Check version:
bun -v - Installation:
curl -fsSL https://bun.sh/install | bash
- π Check version:
- Docker & Docker Compose: Essential for running the PostgreSQL database locally.
- π Check versions:
docker -v,docker compose -v - Installation: Get Docker
- π Check versions:
Click to expand Installation Steps
-
Clone the repository:
git clone https://github.com/Farmingdale-State-Hacks/ramhacks-25-s.git cd ramhacks-25-s -
Install dependencies: This project uses
bunas its package manager.bun install
β Success Note: This might take a few moments.
bunwill install all required Node.js packages. -
Set up environment variables: Copy the example environment file and update it with your local configurations.
cp .env.example .env
Then, open
.envin your editor and fill in the necessary values.β οΈ Important: At a minimum, you'll need to setDATABASE_URLand potentiallySENTRY_DSNif you want local Sentry integration. For local development, theDATABASE_URLcan point to your local Dockerized PostgreSQL instance.# .env example (fill these values) NODE_ENV=development VITE_BASE_URL=http://localhost:3000 DATABASE_URL="postgresql://user:password@localhost:5432/ramhacks_db" # Example Sentry Config (optional for local dev) SENTRY_DSN="" SENTRY_AUTH_TOKEN="" SENTRY_ORG="" SENTRY_PROJECT="" SENTRY_ENVIRONMENT=development
-
Start the local PostgreSQL database: We use
docker-composeto spin up a PostgreSQL instance.docker compose up -d db
This command starts the
dbservice defined indocker-compose.ymlin detached mode. π‘ Tip: To verify the database is running, you can usedocker compose logs dbordocker ps. Thedbservice runs on port5432. -
Run Drizzle migrations: After setting your
DATABASE_URLin.envand starting the database, push the database schema using Drizzle Kit. This creates the tables defined in your schema.bun run db:push
If you're starting fresh, you can also consider
bun run db:generateto create new migration files, butdb:pushapplies the current schema directly. π Verification: You can connect to your local PostgreSQL instance (e.g., usingpsql, DBeaver, or another SQL client) with the credentials from yourdocker-compose.ymland.envto confirm tables are created.
The application's configuration is managed through a combination of files:
.env: For environment-specific variables (database credentials, API keys, Sentry DSN, etc.). This file is not committed to version control.config/config.ts: For application-wide, non-sensitive configurations that are part of the codebase.app.config.ts: TanStack Start's specific configuration, including Vite plugins, React Compiler, Sentry setup, and PWA options.drizzle.config.ts: Drizzle ORM configuration for database migrations and schema management.
Important Environment Variables:
NODE_ENV: Set todevelopmentfor local development,productionfor deployments.VITE_BASE_URL: The base URL for the frontend. Default:http://localhost:3000.DATABASE_URL: Connection string for your PostgreSQL database (e.g.,postgresql://user:password@host:port/database).SENTRY_DSN,SENTRY_AUTH_TOKEN,SENTRY_ORG,SENTRY_PROJECT: Sentry configuration for error monitoring. These are crucial for production environments.
Click to expand Running Instructions
To start the application in development mode with hot-reloading:
bun run devThis will typically start the application on http://localhost:3000.
Open your browser to this address to see the website. Any code changes will automatically trigger a rebuild and refresh.
To create an optimized production build and then run it:
-
Build the application:
bun run build
This command compiles the frontend and backend code, optimizing it for production. The output will be in a
distdirectory. -
Start the production server:
bun run start
This command serves the optimized build. This is how the application would typically run in a production environment (e.g., on Vercel, a custom server, or within a Docker container).
For a fully containerized environment, you can build and run the application using Docker.
-
Build the Docker image:
docker build -t ramhacks-25-s .This command builds the Docker image based on the
Dockerfile. -
Run the Docker container:
docker run -p 3000:3000 -d --name ramhacks-app ramhacks-25-s
This command starts a container from your built image, mapping port 3000 from the container to port 3000 on your host, and runs it in detached mode.
-
Access the application: Open your browser to
http://localhost:3000.
This section outlines common commands and workflows for developing and managing the RamHacks '25 website.
The package.json defines several useful scripts to streamline development:
-
bun run dev:bun run dev
Starts the development server with hot-reloading. Essential for active development.
-
bun run build:bun run build
Creates a production-ready build of the application. This generates optimized static assets and server-side code.
-
bun run start:bun run start
Serves the production build. Use this after
bun run buildto run the application in a production-like environment. -
bun run test:bun run testRuns all tests (Playwright and Cypress). This command acts as a wrapper for the different testing suites. See also: Testing Strategy
-
bun run test:e2e:bun run test:e2e
Specifically runs the Playwright end-to-end tests.
-
bun run test:e2e:ui:bun run test:e2e:ui
Opens the Playwright UI for interactive test debugging.
-
bun run cypress:open:bun run cypress:open
Opens the Cypress Test Runner UI, allowing you to select and run individual Cypress tests or suites.
-
bun run cypress:run:bun run cypress:run
Runs all Cypress tests headlessly in the command line (useful for CI/CD).
-
bun run format:bun run format
Formats all code files using Prettier according to the
.prettierrcconfiguration. This helps maintain consistent code style. -
bun run lint:bun run lint
Runs ESLint to analyze the code for potential errors and style violations.
The project uses Drizzle ORM for database interactions and migrations.
-
bun run db:push:bun run db:push
Pushes the current schema defined in
lib/server/schema/index.tsto the connected database. This is useful for quickly synchronizing the schema during local development.β οΈ Warning: Be cautious usingdb:pushin production, as it can be destructive if not used correctly. It's generally preferred to use explicit migrations (db:migrate) for production environments. -
bun run db:generate:bun run db:generate --name your-migration-name
Generates a new Drizzle migration file based on the differences between your schema and the current database state. The
--nameflag is important for descriptive migration names. These files are typically stored in the.drizzledirectory. -
bun run db:migrate:bun run db:migrate
Applies all pending migration files from the
.drizzledirectory to the database. This is the recommended way to manage schema changes in production.
The project leverages shadcn/ui for its UI components. These components are automatically configured via components.json.
- Adding a new
shadcn/uicomponent:This command uses thebun run ui:add button # Example: adds the Button componentnpx shadcn-ui@latest addutility to download and configure a specified component into yourlib/components/uidirectory, following the settings incomponents.json.
This section outlines the current state of the application, any known shortcomings, and plans for future enhancements.
- Initial Feature Set: As of the current version, the website primarily focuses on static event information. Dynamic features like user registration, team formation, or project submission are not yet implemented.
- Authentication/Authorization: While
Better Authis mentioned in the initial README, a fully integrated authentication system for users (e.g., participants, judges, mentors) is not actively deployed or fully utilized for website content access control at this stage. - Real-time Updates: Event announcements currently require a full page refresh or re-deployment. There's no real-time push notification system.
- None currently documented: While comprehensive testing is in place, minor edge cases or browser-specific rendering issues might exist but are not yet formally tracked. Please report any issues you encounter via the GitHub Issue Tracker.
The RamHacks '25 website is continuously evolving. Here are some planned enhancements and potential feature requests:
- Participant Registration System:
- Secure user registration and login.
- Profile management for participants.
- Team creation and management functionalities.
- Project Submission & Showcase:
- Platform for hackers to submit their projects.
- Gallery to showcase submitted projects during and after the hackathon.
- Mentor & Volunteer Management:
- Features for mentors and volunteers to sign up and manage their availability.
- Matching system for participants to connect with mentors.
- Live Announcements & Notifications:
- Integration of a real-time system (e.g., WebSockets) for instant event announcements.
- Sponsor Portal:
- Enhanced features for sponsors, including customizable profiles and analytics.
- Improved Accessibility:
- Conducting in-depth accessibility audits and implementing further improvements beyond current
shadcn/uifoundations.
- Conducting in-depth accessibility audits and implementing further improvements beyond current
- Performance Optimizations:
- Further fine-tuning performance, potentially exploring advanced caching strategies or serverless functions for specific workloads.
π‘ Feature Requests: Have an idea for a new feature? Please open a feature request issue on GitHub!
We welcome contributions from the community to make RamHacks '25 even better! Please follow these guidelines to ensure a smooth and collaborative development process.
- Fork the Repository: Start by forking the
ramhacks-25-srepository to your GitHub account. - Clone Your Fork: Clone your forked repository to your local machine:
git clone https://github.com/YOUR_USERNAME/ramhacks-25-s.git cd ramhacks-25-s - Create a New Branch: Always create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name # or git checkout -b bugfix/your-bug-fix-name - Make Your Changes: Implement your feature or fix the bug.
- Test Your Changes: Ensure your changes work as expected and don't introduce regressions. Run relevant tests (see Testing Strategy).
- Commit Your Changes: Write clear, concise commit messages following the Conventional Commits specification (e.g.,
feat: add new feature,fix: correct typo in FAQ). The project usesgit-conventional-commits.yamlfor validation. - Push to Your Fork:
git push origin feature/your-feature-name
- Open a Pull Request (PR):
- Go to the original
ramhacks-25-srepository on GitHub. - You should see a prompt to open a PR from your recently pushed branch.
- Fill out the PR template thoroughly, describing your changes, their purpose, and any relevant details.
- Link to any related issues.
- Go to the original
- Main Branch: The
mainbranch is always considered stable and deployable. All new features and bug fixes should be developed in separate branches. - Branch Naming:
feature/descriptive-name: For new features.bugfix/descriptive-name: For bug fixes.chore/descriptive-name: For maintenance tasks, build process changes, etc.docs/descriptive-name: For documentation updates.
- Pull Request Reviews: All PRs require at least one approval from a maintainer before merging. Address any feedback provided during the review process.
- CI/CD Checks: Ensure all GitHub Actions (tests, linting, build) pass successfully on your PR before requesting a review.
- ESLint: We use ESLint for static code analysis to catch common errors and enforce coding standards.
- Run
bun run lintbefore committing to identify and fix issues.
- Run
- Prettier: Code formatting is handled by Prettier to ensure consistent style across the entire codebase.
- Run
bun run formatbefore committing. Your IDE might also integrate Prettier on save.
- Run
- TypeScript: All new code should be written in TypeScript, leveraging its type-safety benefits.
- Component Structure: Follow the existing component structure within
lib/componentsandapp/routes. Keep components small, focused, and reusable.
The project has a robust testing suite to ensure high quality and prevent regressions.
- End-to-End (E2E) Testing:
- Playwright: Used for broad E2E test coverage, located in the
e2e/directory.- Run
bun run test:e2efor headless execution. - Run
bun run test:e2e:uifor interactive UI mode.
- Run
- Cypress: Also used for E2E testing, particularly for specific user flows and component interactions, located in the
cypress/directory.- Run
bun run cypress:runfor headless execution. - Run
bun run cypress:opento launch the Cypress Test Runner.
- Run
- Playwright: Used for broad E2E test coverage, located in the
- Unit/Integration Testing: While not explicitly detailed in
package.jsonscripts, individual components and utility functions should ideally have dedicated unit tests (e.g., using@testing-library/reactwith a test runner likeVitestorJest). You can find examples inTESTING.md(if it exists and is detailed).
π‘ Important: Always run bun run test (or specific test suites) before submitting a Pull Request to ensure your changes haven't broken existing functionality.
- Docker Compose for Database: The
docker-compose.ymlprovides a quick way to set up a local PostgreSQL instance. Always ensure it's running (docker compose up -d db) before starting the dev server or running migrations. - IDE Configuration: Ensure your IDE (e.g., VS Code) has ESLint, Prettier, and TypeScript extensions installed and configured to use the project's settings.
.editorconfighelps ensure consistent indentation and line endings. - Node Version Manager (NVM): If you manage multiple Node.js versions, use
nvm installandnvm usein the project directory based on the.nvmrcfile to ensure you're using the correct Node.js version.
This project is licensed under the MIT License. See the LICENSE file in the root of the repository for full details.
MIT License
Copyright (c) 2024 Farmingdale State Hacks
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
We extend our gratitude to the following projects and their communities for providing the foundational technologies and tools that make the RamHacks '25 website possible:
- Farmingdale State Hacks: The organizing body behind RamHacks.
- TanStack Start: The excellent full-stack framework for React.
- React: The core UI library.
- Tailwind CSS: For efficient and highly customizable styling.
- shadcn/ui: For beautiful and accessible UI components.
- Drizzle ORM & PostgreSQL: For robust and type-safe data management.
- Docker & Bun: For modern development and deployment workflows.
- Cypress & Playwright: For comprehensive testing.
- Sentry: For critical error monitoring.
- All other open-source dependencies listed in
package.json.
Your contributions to the open-source ecosystem are invaluable!
This project is actively maintained by the Farmingdale State Hacks development team.
- GitHub Repository: https://github.com/Farmingdale-State-Hacks/ramhacks-25-s
- General Inquiries: (Placeholder for official email, e.g.,
info@ramhacks.io) - Development Issues: Please use the GitHub Issue Tracker for bug reports and feature requests.
Click to expand recent updates
v1.0.0 (YYYY-MM-DD)
- Initial stable release of the RamHacks '25 website.
- Core information pages (About, FAQ, Sponsors, Clubs).
- Full TanStack Start, React 19, Tailwind CSS v4, shadcn/ui integration.
- Drizzle ORM with PostgreSQL database backend.
- Docker containerization for local development and deployment.
- Comprehensive E2E testing with Cypress and Playwright.
- CI/CD pipelines with GitHub Actions.
- Sentry error monitoring integration.
Click to expand common questions
Q: What is RamHacks? A: RamHacks is Farmingdale State College's annual student-run hackathon, bringing together students from various disciplines to build innovative projects, learn new skills, and connect with peers and mentors.
Q: How can I register for RamHacks? A: Registration details, including links and deadlines, will be announced soon on the website's homepage and dedicated sections. Please keep an eye on updates!
Q: I found a bug or have a feature idea. How can I contribute? A: We welcome all contributions! Please refer to our Contributing Guidelines for instructions on how to submit bug reports, feature requests, or code contributions via GitHub Pull Requests.
Q: What technologies are used to build this website? A: This website is built using a modern stack including TanStack Start, React 19, Tailwind CSS v4, shadcn/ui, Drizzle ORM, PostgreSQL, and Docker. You can find a complete list in the Technology Stack section.
Click to expand common troubleshooting steps
- "bun: command not found":
- Solution: Ensure Bun is properly installed and its executable path is included in your system's
PATHenvironment variable. Refer to Bun's official installation guide.
- Solution: Ensure Bun is properly installed and its executable path is included in your system's
- Database Connection Issues (
DATABASE_URLerrors):- Check
.env: Verify thatDATABASE_URLis correctly set in your.envfile and matches the credentials indocker-compose.yml. - Docker Container Status: Ensure your PostgreSQL container is running:
docker ps. If not, start it withdocker compose up -d db. - Port Conflicts: Make sure no other application is using port
5432on your machine. - Firewall: Check if your firewall is blocking connections to
localhost:5432.
- Check
- "Error: bun install failed" / Dependency Issues:
- Clean Cache: Try clearing Bun's cache:
bun cache clean. - Node.js Version: Ensure you are using the recommended Node.js version specified in
.nvmrc(nvm use). - Delete
node_modules: Remove thenode_modulesdirectory andbun.lockb, then runbun installagain.
- Clean Cache: Try clearing Bun's cache:
- UI Not Updating / Hot Reloading Issues:
- Restart Dev Server: Sometimes, simply restarting
bun run devcan resolve these issues, especially after significant dependency changes. - Check Browser Console: Look for errors in your browser's developer console.
- Restart Dev Server: Sometimes, simply restarting
- Cypress/Playwright Tests Not Running:
- Ensure Dev Server is Running: E2E tests require the application to be running first (
bun run dev). - Browser Launch Issues: For Cypress/Playwright UI, check if the required browser binaries are installed and accessible.
- Console Output: Review the console output from the test runner for specific error messages.
- Ensure Dev Server is Running: E2E tests require the application to be running first (
The RamHacks '25 website leverages a minimal set of API routes, primarily for health checks and potential future dynamic content.
- Health Check Endpoint:
- URL:
/api/health - Method:
GET - Description: A simple endpoint to check the operational status of the backend API. Returns a success message and server timestamp.
- Example Response (200 OK):
{ "status": "ok", "message": "API is healthy", "timestamp": "2024-07-20T12:00:00.000Z" }
- URL:
Further API endpoints will be documented here as they are developed for features like registration, project submission, etc. For now, most data is fetched directly via TanStack Query's server-side functions.