Skip to content

NeoFoxxo/plottwist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2fe66af ยท Aug 13, 2024
Apr 19, 2024
Aug 13, 2024
Apr 23, 2024
Apr 18, 2024
Apr 22, 2024
Apr 22, 2024
Apr 13, 2024
Apr 22, 2024
Apr 13, 2024
Apr 13, 2024
Apr 14, 2024
Apr 22, 2024
Apr 22, 2024
Apr 13, 2024
Apr 16, 2024
Apr 15, 2024

Repository files navigation

Plot Twist drawing

Open in GitHub Codespaces

Choose your own adventure story generator built for the Supabase hackathon

About the Project

Plot Twist is a fullstack application developed using NextJS, SmythOS and Supabase. You can create your own unique story and make choices based on the story outcome. This leverages AI to get unique and interesting choices for the user to choose, so that the outcome of the story is different everytime. You tell your own story and share it to the outer world. There are many things you could do with the story created by other users. You can remix other's stories or comment on them. You can also regenerate story that was not to your liking and save them.

vercel

main page

ts

GitHub Language Count GitHub Top Language GitHub Issues GitHub Closed Issues GitHub Last Commit

How to navigate the Project ?

The project consists app folder, which is responsible for handling frontend and backend features. Below are the details on how the folders are structured to better understand the architecture of the application.

๐Ÿ“‚root/
    โ”œโ”€โ”€ public/             # Public assets and HTML template
    โ”œโ”€โ”€ app/
    โ”‚   โ”œโ”€โ”€ api/            # All main files
    โ”‚   โ”œโ”€โ”€ app/            # Base app post login
    โ”‚   โ”œโ”€โ”€ login/          # Login feature
    โ”‚   โ”œโ”€โ”€ profile/        # Profile feature
    โ”‚   โ”œโ”€โ”€ story/          # User story feature
    โ”‚   โ”œโ”€โ”€ layout.tsx      # Headers and footers for the app
    โ”‚   โ””โ”€โ”€ page.tsx        # Landing page
    โ”‚
    โ””โ”€โ”€ components/         # Client components for the UI
    โ””โ”€โ”€ utils/              # React query and other utils
    โ””โ”€โ”€ lib/                # Server & DB actions with supabase auth
    โ””โ”€โ”€ ...

Features โœจ

  • User Authentication: Users can create accounts, log in, and securely access their personalized profiles.
  • Responsive Design: Enjoy a consistent and visually appealing experience across various devices.
  • User Profile: User can manage their profile information and upload images.
  • Create Story: Create your own unique stories powered by AI.
  • Comments: Add a review comment for any story created by other users.
  • Remix: Reuse stories created by other users to brew your own unique version of the story.
  • Bookmarks: Bookmark your favourite stories to access them later.

Installation ๐Ÿ’ป

To make the application run locally on your computer, you can follow the below steps:

Project setup:

Follow the steps below to setup the project locally:

  1. Clone the repository:

    git clone https://github.com/NeoFoxxo/plottwist.git
  2. Navigate to the project directory:

    cd plottwist

You can use npm / yarn / pnpm. Just replace pnpm with npm or yarn for all the commands.

Frontend setup:

To run the client locally, follow the below steps:

  1. Install the dependencies using pnpm / npm (make sure you have pnpm installed):

    npm install
  2. Start the development server for frontend:

    npm run dev
  3. Open your browser and visit http://localhost:3000/ to access the frontend of plottwist application.

Technologies Used ๐Ÿ”ง

  • NextJS: Used by some of the world's largest companies, Next.js enables you to create high-quality web applications with the power of React components.
  • Typescript: TypeScript checks a program for errors before execution, ensures better developer experience.
  • React: JavaScript library for building user interfaces.
  • React Query: Also knows as Tanstack query for better data fetching.
  • TailwindCSS: A utility-first CSS framework packed with classes.
  • Zod: Zod for consistent input validation, data structuring, and error handling.
  • PostgreSQL: Supabase is used to manage our postgres database.

Contributing ๐Ÿค

We welcome open-source contributions to Plottwist project ! If you would like to contribute, please follow the below steps:

  1. Fork the repository.
  2. Create a new branch for your feature/fix: git checkout -b feature-name.
  3. Make your changes and commit them: git commit -m 'Add some feature'.
  4. Push the changes to your forked repository: git push origin feature-name.
  5. Open a pull request to the main repository's main branch.

Contributors

License ๐Ÿ“

This project is licensed under the GPL 3 License. Feel free to use, modify, and distribute the code as per the terms of the license.

Contact ๐Ÿ’ฌ

If you have any questions, suggestions, or feedback, please don't hesitate to reach out to the project maintainer.