This is my AQA A Level Computer Science NEA Project.
Note: I will consider the project's root directory (
/
) as theassembly_code_visualiser
folder for the rest of this file.
It is a web application that has an assembly code editor (based on the AQA 2023 summer assessment specification for A Level Computer Science) and a Little Man Computer visualisation that shows the user what is happening inside the CPU and RAM as the assembly code is run. This website can also be used as a learning tool, with the ability for teachers to have classes of students and assign them (either as a class or individually) challenges / assignments with a due date that must be completed. For example, this would be to write Assembly code that can take 2 integer inputs and return the addition of both those numbers.
For more information about how I created this web app, refer to the Project Writeup.
- Node.js
- Express.js
- Redis
- Database e.g. phpMyAdmin
- Setup a database on localhost or otherwise (database structure can be found in the Project Writeup)
- Setup basic redis store on localhost or otherwise
- Open
.env.example
- Copy its contents to a new file called
.env
- Fill out necessary variables
- Copy its contents to a new file called
- Navigate to the root directory folder (
/
) and runnpm install
in the terminal.
- Start the database so that it can be accessed as specified in
.env
- For me, this means opening up
MAMP
and starting theassembly_code_visualiser
host
- For me, this means opening up
- Start the redis client/server
- For me, this means going to terminal and typing
redis-server
- For me, this means going to terminal and typing
- Navigate to the root directory of this project and run
nodemon start
- Go to a web browser and enter the following in the URL bar:
localhost:3000
The testing video, going through all requirements, can be see here. This is a very long, unlisted video going through all the requirements that were required for the project as needed for the A Level NEA, but can be skipped through to view the core functionalities of the website and act as a demo.