Skip to content
View gtcode-dot-com's full-sized avatar

Block or report gtcode-dot-com

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
gtcode-dot-com/README.md

Assembly Academy

An advanced interactive platform for learning assembly languages and processor architectures, providing comprehensive technical education through hands-on code simulation, interactive examples, and in-depth architectural insights.

Features

  • Interactive assembly code simulation
  • Support for multiple architectures (x86, ARM, RISC-V, Apple Silicon)
  • Live code execution and register state visualization
  • Comprehensive architectural diagrams
  • Educational examples and documentation

Prerequisites

Before setting up the project, ensure you have the following installed on your Ubuntu system:

# Update package list
sudo apt update

# Install Node.js and npm (v20.x)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

# Verify installations
node --version  # Should be v20.x.x
npm --version   # Should be 9.x.x or higher

PostgreSQL Setup

  1. Install PostgreSQL:
# Install PostgreSQL and development libraries
sudo apt install -y postgresql postgresql-contrib libpq-dev

# Start PostgreSQL service
sudo systemctl start postgresql
sudo systemctl enable postgresql
  1. Configure PostgreSQL:
# Switch to postgres user
sudo -i -u postgres

# Create a new database and user
psql -c "CREATE DATABASE assembly_academy;"
psql -c "CREATE USER your_username WITH PASSWORD 'your_password';"
psql -c "ALTER DATABASE assembly_academy OWNER TO your_username;"
psql -c "GRANT ALL PRIVILEGES ON DATABASE assembly_academy TO your_username;"

# Exit postgres user shell
exit
  1. Set up environment variables:
# Add to your ~/.bashrc or environment
export DATABASE_URL="postgres://your_username:your_password@localhost:5432/assembly_academy"

Project Setup

  1. Clone the repository:
git clone <repository-url>
cd assembly-academy
  1. Install project dependencies:
npm install
  1. Push database schema:
npm run db:push
  1. Seed the database with initial data:
npx tsx server/seed.ts

Running the Application

  1. Start the development server:
npm run dev

The application will be available at http://localhost:5000

Running Tests

Our project uses Jest for testing. To run the test suite:

# Run all tests
npx jest

# Run specific test file
npx jest client/src/lib/__tests__/assemblySimulator.test.ts

# Run tests in watch mode during development
npx jest --watch

Project Structure

├── client/                 # Frontend React application
│   ├── src/
│   │   ├── components/    # Reusable React components
│   │   ├── lib/          # Utility functions and core logic
│   │   └── pages/        # Page components for each architecture
├── server/                # Backend Express server
│   ├── routes.ts         # API routes
│   └── storage.ts        # Database interface
├── shared/               # Shared types and schemas
└── jest.config.ts       # Jest testing configuration

Development Guidelines

  • Use npm run dev for local development
  • Follow TypeScript best practices
  • Write tests for new features
  • Ensure all tests pass before committing changes

Troubleshooting

Database Connection Issues

  1. Verify PostgreSQL is running:
sudo systemctl status postgresql
  1. Check database connection:
psql -U your_username -d assembly_academy -h localhost
  1. Verify environment variables:
echo $DATABASE_URL

Test Issues

  1. Ensure Jest is properly configured:
npm install -D @types/jest
  1. Clear Jest cache if needed:
npx jest --clearCache

License

MIT License. See LICENSE for more information.

Popular repositories Loading

  1. l l Public

    gtcode-dot-com.github.io

    HTML

  2. ugo-ghidra ugo-ghidra Public

    Forked from osirislab/ugo-ghidra

    Java

  3. gtcode-dot-com gtcode-dot-com Public

    redo in ts/pg

    TypeScript