adds last few files before removal of blog posts from this repo

adds ability to flag pages as "alwaysHidden"
This commit is contained in:
Rosia E Evans 2023-10-13 10:57:11 +01:00
parent 9966927e5c
commit 8cfcf1a721
20 changed files with 83 additions and 29 deletions

View file

@ -1,16 +1,31 @@
# Mind Map Maker
## What it is
This project was completed as a large percentage of my final A-level computer science grade. Every student had to choose a language or development framework and create a program for a client, whilst most students chose to
create video games for their siblings, I chose to create mind map software as my sister was soon to start her GCSEs and was struggling to revise. The software had to run on a £70 laptop and allow for files to be transfered between
copies of the software. I also aimed to create an intuitive and relatively unrestrictive system as my sister was an art student and had little experience with digital design software.
This project was completed for my computer science A-level. Students had to find a client and create a program for them, I chose my sister and created software to help her revise for her GCSE's.
The software had to:
- run on her £70 laptop
- allow for files to be transfered between devices
- allow actions to be undone and redone
- be generic enough to work for any subject
At the time I was finding myself really interested in intuitive UI design so I also aimed to create a simple and unrestrictive system that I felt was easy to learn and use. Though I found I had to cut a lot of it for time constraints.
We were given 24 hours spread over 2 months to create the program and were allowed to choose our own langauges and frameworks.
I chose to write the sofware in Unity as I wanted to learn a new engine and knew that unitys use of scenegraphs
would let me avoud calculating the scaling and positioning of mind map components.
As one of the software requirements was to run on very low end computers I also had to ensure I was creating scripts that would run as efficiently as possible when compiled, so I ended up
finding myself weighing up the strengths and weaknesses of different libraries, often choosing ones with drawbacks in favour of their lower usage of memory.
## The outcome
<iframe width="560" height="315" src="https://www.youtube.com/embed/qIV7RvNZ22c" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
## What I did
I independently created this program over the course of 24 hours spread over 2 months. I chose to write the sofware in Unity as I wanted to learn a new engine and knew that unitys use of scenegraphs
would make the process of development alot faster as I wouldn't have to calculate scales and positions of mind map components as unity would do this all in the background, allowing me to focus on the larger aspects of the project. <br> <br>
As one of the software requirements was to run on very low end computers I also had to ensure I was creating scripts that would run as efficiently as possible when compiled, this regularly meant having to
weigh up the strengths and weaknesses of different libraries, often choosing ones with drawbacks in favour of their lower usage of memory.
The final system had a number of features:
- Fully working undo/redo system
- The ability to create and link text bubbles
- The ability to import images
- A drawing tool, along with options to optimise lines for slower pcs
- A save and load system
- A settings panel
- The ability to navigate and magnify the mindmap

View file

@ -5,3 +5,8 @@ The Aber Robotics Society is a small society of friends at my university who mee
While there I have learnt most of my knowledge of robotics and electronics and worked on a number of projects including a basic two wheeled remote control robot (my first project where I learnt the basics of electronics), a program that takes photos of people, converts the images to lines and g-code and sends them to a CNC machine that draws the images and a watering system for plants I keep at my house.
During my second year I have gained the role of quatermaster which leaves me in charge of the robotics cupboard where all of the societies older projects are left. I took the role hoping to archive the projects and build wikis for each project, encouraging members to document their work better for later members to come back to though this somewhat took a back seat as the president developed an amazing system that logs the owners of projects and peoples permissions for the projects using qr-codes and additionally we began to share more of our cupboard and its stored resources with additional societies.
## Projects
This site documents a few different projects I've worked on whilst at the society, including:
- [CNSelfie](/CNCMachine.html)
- thats it

View file

@ -16,9 +16,9 @@ On the side of this I also enjoy using code to create music through programming
I've previously had interests in VR and XR and UI design, spending a lot of my secondary school years experimenting with both concepts so both websites also have a few probjects relating to those concepts.
________
If you want a basic outline of my work, here are a few interesting projects:
- [something]()
- [something]()
- [something]()
- [My Work at Skipton Building Society](/SBSWork.html)
- [My Work running AberCompSoc](/aberComSoc.html)
- [AardvarkXR](/Aardvark.html)
To see all of my work, check the navbox to the side.

View file

@ -17,6 +17,7 @@
<li><a href=/index.html>Welcome!</a></li>
<h2>Newer Work</h2>
<li><a href=/CNCMachine.html>CNSelfie</a></li>
<li><a href=/ThisSite.html>This Site</a></li>

View file

@ -17,6 +17,7 @@
<li><a href=/index.html>Welcome!</a></li>
<h2>Newer Work</h2>
<li><a href=/CNCMachine.html>CNSelfie</a></li>
<li><a href=/ThisSite.html>This Site</a></li>

View file

@ -17,6 +17,7 @@
<li><a href=/index.html>Welcome!</a></li>
<h2>Newer Work</h2>
<li><a href=/CNCMachine.html>CNSelfie</a></li>
<li><a href=/ThisSite.html>This Site</a></li>

View file

@ -17,6 +17,7 @@
<li><a href=/index.html>Welcome!</a></li>
<h2>Newer Work</h2>
<li><a href=/CNCMachine.html>CNSelfie</a></li>
<li><a href=/ThisSite.html>This Site</a></li>
@ -42,16 +43,32 @@
</nav>
<article><h1>Mind Map Maker</h1>
<h2>What it is</h2>
<p>This project was completed as a large percentage of my final A-level computer science grade. Every student had to choose a language or development framework and create a program for a client, whilst most students chose to
create video games for their siblings, I chose to create mind map software as my sister was soon to start her GCSEs and was struggling to revise. The software had to run on a £70 laptop and allow for files to be transfered between
copies of the software. I also aimed to create an intuitive and relatively unrestrictive system as my sister was an art student and had little experience with digital design software.</p>
<p>This project was completed for my computer science A-level. Students had to find a client and create a program for them, I chose my sister and created software to help her revise for her GCSE's.
The software had to:</p>
<ul>
<li>run on her £70 laptop</li>
<li>allow for files to be transfered between devices</li>
<li>allow actions to be undone and redone</li>
<li>be generic enough to work for any subject</li>
</ul>
<p>At the time I was finding myself really interested in intuitive UI design so I also aimed to create a simple and unrestrictive system that I felt was easy to learn and use. Though I found I had to cut a lot of it for time constraints.</p>
<p>We were given 24 hours spread over 2 months to create the program and were allowed to choose our own langauges and frameworks.
I chose to write the sofware in Unity as I wanted to learn a new engine and knew that unitys use of scenegraphs
would let me avoud calculating the scaling and positioning of mind map components.</p>
<p>As one of the software requirements was to run on very low end computers I also had to ensure I was creating scripts that would run as efficiently as possible when compiled, so I ended up
finding myself weighing up the strengths and weaknesses of different libraries, often choosing ones with drawbacks in favour of their lower usage of memory.</p>
<h2>The outcome</h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/qIV7RvNZ22c" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<h2>What I did</h2>
<p>I independently created this program over the course of 24 hours spread over 2 months. I chose to write the sofware in Unity as I wanted to learn a new engine and knew that unitys use of scenegraphs
would make the process of development alot faster as I wouldn't have to calculate scales and positions of mind map components as unity would do this all in the background, allowing me to focus on the larger aspects of the project. <br> <br>
As one of the software requirements was to run on very low end computers I also had to ensure I was creating scripts that would run as efficiently as possible when compiled, this regularly meant having to
weigh up the strengths and weaknesses of different libraries, often choosing ones with drawbacks in favour of their lower usage of memory.</p>
<p>The final system had a number of features:</p>
<ul>
<li>Fully working undo/redo system</li>
<li>The ability to create and link text bubbles</li>
<li>The ability to import images</li>
<li>A drawing tool, along with options to optimise lines for slower pcs</li>
<li>A save and load system</li>
<li>A settings panel</li>
<li>The ability to navigate and magnify the mindmap</li>
</ul>
</article>
</main>

View file

@ -17,6 +17,7 @@
<li><a href=/index.html>Welcome!</a></li>
<h2>Newer Work</h2>
<li><a href=/CNCMachine.html>CNSelfie</a></li>
<li><a href=/ThisSite.html>This Site</a></li>

View file

@ -17,6 +17,7 @@
<li><a href=/index.html>Welcome!</a></li>
<h2>Newer Work</h2>
<li><a href=/CNCMachine.html>CNSelfie</a></li>
<li><a href=/ThisSite.html>This Site</a></li>

View file

@ -17,6 +17,7 @@
<li><a href=/index.html>Welcome!</a></li>
<h2>Newer Work</h2>
<li><a href=/CNCMachine.html>CNSelfie</a></li>
<li><a href=/ThisSite.html>This Site</a></li>
@ -53,9 +54,9 @@
<hr>
<p>If you want a basic outline of my work, here are a few interesting projects:</p>
<ul>
<li><a href="">something</a></li>
<li><a href="">something</a></li>
<li><a href="">something</a></li>
<li><a href="/SBSWork.html">My Work at Skipton Building Society</a></li>
<li><a href="/aberComSoc.html">My Work running AberCompSoc</a></li>
<li><a href="/Aardvark.html">AardvarkXR</a></li>
</ul>
<p>To see all of my work, check the navbox to the side.</p>
<p>&lt;-</p>

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -105,6 +105,8 @@ std::string NavBarGenerator::insertPagesIntoCategories(std::string categories, s
{
for (Page* page : pages)
{
if (page->getPageFlags().alwaysHidden)
continue;
if (page->getPageFlags().hidden &&
isOptionEnabled(OptionFlags::HIDE_PRIVATE))
continue;

View file

@ -129,6 +129,9 @@ FileFlags FlagReader::readFlags(std::string flagString)
case 'p':
flags.hidden = true;
break;
case 'P':
flags.alwaysHidden = true;
break;
}
}

View file

@ -11,7 +11,8 @@
struct FileFlags
{
bool hidden;
bool hidden; // removes page from navbar when hidePages option is set
bool alwaysHidden; // page will never be added to navbar, good for files you want to keep but only link to
};
class FlagReader

View file

@ -55,6 +55,7 @@ void copyFolderAndContents(std::string inUrl, std::string outUrl)
/*
* -in="" // give source folder
* -out="" // give output folder
* -static="" // give static resources folder (images and things to copy across to output folder go in here)
* -hide // hides private posts
*/
int main(int argc, char* argv[])
@ -63,8 +64,12 @@ int main(int argc, char* argv[])
if (source == "")
source = SOURCE_FILE_FOLDER;
std::string output = getArgValue(argc, argv, "-out=");
if (output == "")
output = OUTPUT_FILE_FOLDER;
if (output == "")
output = OUTPUT_FILE_FOLDER;
std::string stat = getArgValue(argc, argv, "-static=");
if (stat == "")
stat = STATIC_RESOURCES_FOLDER;
int flags = OptionFlags::NONE;
if (doesArgExist(argc, argv, "-hide"))
flags |= OptionFlags::HIDE_PRIVATE;
@ -74,7 +79,7 @@ int main(int argc, char* argv[])
builder->buildAllPages();
// pre-written pages and resources i.e. images
copyFolderAndContents(STATIC_RESOURCES_FOLDER, output);
copyFolderAndContents(stat, output);
}