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.
- 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
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
- 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
- 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
- Set up environment variables:
# Add to your ~/.bashrc or environment
export DATABASE_URL="postgres://your_username:your_password@localhost:5432/assembly_academy"
- Clone the repository:
git clone <repository-url>
cd assembly-academy
- Install project dependencies:
npm install
- Push database schema:
npm run db:push
- Seed the database with initial data:
npx tsx server/seed.ts
- Start the development server:
npm run dev
The application will be available at http://localhost:5000
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
├── 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
- Use
npm run dev
for local development - Follow TypeScript best practices
- Write tests for new features
- Ensure all tests pass before committing changes
- Verify PostgreSQL is running:
sudo systemctl status postgresql
- Check database connection:
psql -U your_username -d assembly_academy -h localhost
- Verify environment variables:
echo $DATABASE_URL
- Ensure Jest is properly configured:
npm install -D @types/jest
- Clear Jest cache if needed:
npx jest --clearCache
MIT License. See LICENSE for more information.