Skip to content

Interactive casting app built with React, TailwindCSS, and Firebase. Features user authentication, animated results, and history management.

Notifications You must be signed in to change notification settings

quinise/OnlineObi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Online Obi

Built With

React TailwindCSS Firebase Framer Motion Vite TypeScript License

A modern React application that simulates a casting experience directly in the browser. Each randomized cast produces:

  • A symbolic identifier and interpretation
  • A yes/no/maybe outcome
  • A set of four virtual tokens with smooth animations

Users can log in, save their casts, edit details, and revisit past results. Originally prototyped in Swift with Core Data, the project was reimagined in React, TailwindCSS, and Firebase to demonstrate responsive design, real-time data handling, and full-stack deployment.

πŸ”— Live Demo: obi-project-397801.web.app

Project Goals

I set out on this coding endeavor to learn how to use ReactJS, Vite, Figma, OAuth, and TailwindCSS.


Features

Authentication Animations Responsive Design History Management Deployment

Prerequisites

Before you begin, ensure you have the following installed:

Dependencies

"firebase": "^12.6.0",
"framer-motion": "^10.16.4",
"react": "^19.2.1",
"react-dom": "^18.2.0",
"react-firebase-hooks": "^5.1.1",
"react-icons": "^4.11.0",
"uid": "^2.0.2",
"tailwindcss": "^3.3.3",
"typescript": "^5.0.2",
"vite": "^7.2.4"

Dev & Tooling

  • Node.js: 20.19.5

  • npm: 11.6.2

  • Firebase CLI: firebase-tools (used for deployment) β€” install with npm i -g firebase-tools

  • Linting: ESLint with the provided workspace config (npm run lint)

Useful scripts

npm run dev      # start Vite dev server
npm run build    # build for production
npm run preview  # preview production build
npm run lint     # run ESLint checks

Getting Started

1. Clone the repo

git clone https://github.com/quinise/OnlineObi.git
cd OnlineObi

2. Install dependencies

npm install

3. Firebase configuration

Create a firebase.config.tsx file in the root of your project and add your Firebase project keys from the Firebase Console.

Example:

// firebase.config.tsx
export const firebaseConfig = {
  apiKey: "YOUR_API_KEY",
  authDomain: "YOUR_AUTH_DOMAIN",
  projectId: "YOUR_PROJECT_ID",
  storageBucket: "YOUR_STORAGE_BUCKET",
  messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
  appId: "YOUR_APP_ID",
};

4. Run locally

npm run dev
  1. Navigate to http://localhost:5173

Recommended VS Code extensions

  • Tailwind CSS IntelliSense (bradlc.vscode-tailwindcss) β€” provides autocomplete, linting, and class inspections for Tailwind projects. The workspace recommends this extension in .vscode/extensions.json.
  • Workspace CSS setting: this project adds a workspace setting to suppress "Unknown at rule" diagnostics for PostCSS/Tailwind directives (.vscode/settings.json). Install the Tailwind extension for full IntelliSense and then you can remove or keep the setting as desired.

5. Navigate to http://localhost:5173

6. Build and deploy

npm run build
firebase deploy

Screenshots & Demo

Homepage with Generate Result button
Homepage – Generate Result button with animations

History page with saved casts
History – Saved casts with edit & delete options

Details view of a saved cast
Details – Expanded view of a single cast

Animation of generating a cast
Demo – Short animation of generating a cast

Contributing

Issues, and feature requests are welcome!


License

This project is licensed under the MIT License.

About

Interactive casting app built with React, TailwindCSS, and Firebase. Features user authentication, animated results, and history management.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published