Skip to content

alexis-menendez/HowNotToDieDemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

169 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HOW NOT TO DIE

Description

How Not To Die is a full-stack, collaborative storytelling game disguised as a survival console for interstellar explorers. Built with React, Node.js, Express, and PostgreSQL, the app is designed to showcase real-time user interactivity, clean UI/UX, and narrative-driven data flow within a stylized space-console interface.

Players assume the role of deep-space explorers sent to document the conditions of unknown planets. Each player contributes to a shared mystery by writing detailed explorer logs—some humorous, some harrowing, and some that hint at something far more ominous beneath the surface.

Users can:

  • Explore planets and uncover immersive, interactive landscapes
  • Write personal logs and submit public entries for review
  • Read logs submitted by others and vote on which should be added to the official Survival Guide
  • Interact with a galaxy map and travel via shuttle to discover new worlds
  • Use malfunctioning tools like a “weather scanner” that pulls real Earth data as if it were planetary weather
  • Experience unexpected system failures, hidden transmissions, and narrative surprises as they piece together clues

At its core, How Not To Die is a collaborative mystery game. Players work together to build the lore, expand the survival guide, and slowly uncover the truth behind strange signals, vanishing explorers, and the increasingly unstable AI known as VERA. Every log shapes the world, every vote builds the canon, and every clue brings players closer to the central mystery.

Deployed via Render and styled with responsive, atmospheric detail, How Not To Die invites you not just to survive, but to contribute to the mythos of those who do.

Key Features Technology Stack
Interactive, intuitive UI built with React Languages: JavaScript (client), TypeScript (server)
Responsive layout for mobile and desktop Front-End: React
Reusable component architecture with CSS modules Styling: CSS Modules, Responsive Media Queries
Client-side routing with protected routes State Management: React Context API
Private user logs with full CRUD capabilities Routing: React Router
In-app messaging system with persistent threads Back-End: Node.js, Express.js
Voting system with upvote threshold gating Database: PostgreSQL, Sequelize ORM
RESTful API endpoints (GET and POST) Authentication: JWT
Integration with server-side APIs Security: bcrypt, .env (for API key protection)
Secure user authentication using JWT Build Tools: Vite
Secure handling of API keys and env variables Deployment: Render
PostgreSQL database with Sequelize ORM Version Control: Git, GitHub

Table of Contents

Installation

This app is deployed on Render and can be accessed here. To run the app locally:

1. Ensure you have the following installed:

2. Clone the Repository

3. Install Client Dependencies

  • Open an Integrated terminal in /client:
  • bash:

    cd how-not-to-die/client
    npm install

4. Install Server Dependencies

  • Open an Integrated terminal in /server:
  • bash:

    cd ../server
    npm install

5. Create a .env file in the root directory with the following:

  • .env:

    DB_NAME=your_db
    DB_USER=your_user
    DB_PASSWORD=your_password
    JWT_SECRET=your_secret
    API_KEY_1=xxxx

6. Ensure PostgreSQL is running. Then create your database and apply any migrations/seeds:

  • Open an Integrated terminal in /server:
  • bash:

    npx sequelize-cli db:create
    npx sequelize-cli db:migrate
    npx sequelize-cli db:seed:all

7. Start the Server

  • Open an Integrated terminal in /server:
  • bash:

    cd how-not-to-die/server
    npm run dev

8. Start the Client

  • Open an Integrated terminal in /client:
  • bash:

    cd how-not-to-die/client
    npm run dev

Usage

  1. Once the server is running, navigate to the link that starts with “http://localhost:” found in your terminal after starting the client

  2. From there, users can:

    • Register or sign in through the console-style login screen
    • Navigate a sci-fi command dashboard powered by VERA
    • Submit, edit, and manage personal explorer logs
    • Vote on public log entries submitted by others
    • View/send messages from/to other players and story NPC’s
    • Travel to alien planets and interact with environment tools

Screenshots

projectscreenshot

Walkthrough Video

  • Currently unavailable (Coming soon!)

Live Demo

Contributing

We welcome contributions! To contribute:

  1. Fork the repository.
  2. Create a new branch for your feature or fix.
  3. Make your changes and commit them with descriptive messages.
  4. Push your changes and create a pull request.

Tests

There are currently no automated tests for this project

Documentation

Note: The original repository ran out of free Git LFS space, so the project was migrated to a new team repository under a paid account with additional storage.

Acknowledgements

  1. Thomas Brittain
  2. Diego Mars

Contact

If you have any questions, feel free to contact the team:

Project Lead: Blake Brittain

Frontend Lead, Documentation Manager: Alex Menendez – Junior Developer, Junior Project Manager, Junior UI/UX Designer

Backend Lead: Constance Robin

Frontend Developer: Joeseph Goodwin

Backend Developer: Johnny

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors