Skip to content

gtcode-dot-com/gtcode-dot-com

Repository files navigation

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.

About

redo in ts/pg

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages