Skip to content

Commit ccf9104

Browse files
Home page, new session page (#350)
First cut. Updated media to follow. Projects will likely be disabled for the beta. We'll invest more design effort post-beta.
1 parent 75159ed commit ccf9104

26 files changed

+1109
-343
lines changed

index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
<meta name="twitter:site" content="@microbit_edu" />
1717
<meta
1818
name="description"
19-
content="Create AI by training a machine learning model with your own movement data, testing it to see if it works, then writing your own code to use it on a BBC micro:bit"
19+
content="Create AI by training a machine learning model with your movement data, testing it to see if it works, then writing your own code to use it on a BBC micro:bit"
2020
/>
2121
<meta
2222
property="og:description"
23-
content="Use your own movement data to train a computer model"
23+
content="Create AI on your BBC micro:bit using movement and machine learning"
2424
/>
2525
<meta property="og:image" content="%VITE_FULL_URL%social.jpg" />
2626

lang/ui.en.json

Lines changed: 109 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@
6363
"defaultMessage": "Close",
6464
"description": "Close button text or label"
6565
},
66+
"coming-soon": {
67+
"defaultMessage": "Coming soon",
68+
"description": "Placeholder text for future projects"
69+
},
6670
"confirm-action": {
6771
"defaultMessage": "Confirm",
6872
"description": "Confirm button text"
@@ -683,13 +687,9 @@
683687
"defaultMessage": "Live graph",
684688
"description": ""
685689
},
686-
"footer.resume": {
687-
"defaultMessage": "Resume session",
688-
"description": ""
689-
},
690-
"footer.start": {
691-
"defaultMessage": "Start new session",
692-
"description": ""
690+
"get-started-action": {
691+
"defaultMessage": "Get started",
692+
"description": "Get started action"
693693
},
694694
"help-label": {
695695
"defaultMessage": "Help",
@@ -703,9 +703,33 @@
703703
"defaultMessage": "Home",
704704
"description": "Home button text"
705705
},
706+
"homepage-description": {
707+
"defaultMessage": "Train a machine learning model on your own movement data and run it on your micro:bit.",
708+
"description": "Home page description"
709+
},
710+
"homepage-how-it-works": {
711+
"defaultMessage": "How it works",
712+
"description": "Home page section heading"
713+
},
714+
"homepage-projects": {
715+
"defaultMessage": "Projects",
716+
"description": "Home page section heading"
717+
},
718+
"homepage-step-by-step": {
719+
"defaultMessage": "Step by step",
720+
"description": "Home page section heading"
721+
},
706722
"homepage-subtitle": {
707-
"defaultMessage": "Introduce students to machine learning concepts through physical movement and data",
708-
"description": "Subtitle of the home page"
723+
"defaultMessage": "Create AI on your BBC micro:bit using movement and machine learning.",
724+
"description": "Home page subtitle"
725+
},
726+
"homepage-video-alt": {
727+
"defaultMessage": "Introductory video",
728+
"description": "Home page video alt text"
729+
},
730+
"homepage-video-prompt": {
731+
"defaultMessage": "Watch the video to learn how to use {appNameFull}.",
732+
"description": "Prompt to watch the video on the home page"
709733
},
710734
"homepage.Link": {
711735
"defaultMessage": "Home page",
@@ -759,6 +783,62 @@
759783
"defaultMessage": "The name is used when you save a file.",
760784
"description": "Text under project name field"
761785
},
786+
"newpage-continue-session-instruction": {
787+
"defaultMessage": "To continue a saved session from a file please select a file.",
788+
"description": "Instruction to users to continue a saved session from a file"
789+
},
790+
"newpage-continue-session-subtitle": {
791+
"defaultMessage": "Use a hex file or data samples file you saved to your computer to continue a session.",
792+
"description": "Continue session subtitle"
793+
},
794+
"newpage-continue-session-title": {
795+
"defaultMessage": "Continue a saved session",
796+
"description": "Continue session title"
797+
},
798+
"newpage-heading-subtitle": {
799+
"defaultMessage": "Run whole class sessions, easily share code with students and save progress",
800+
"description": "Homepage heading subtitle"
801+
},
802+
"newpage-last-session-date": {
803+
"defaultMessage": "<strong>Date:</strong> {date}",
804+
"description": "Last session date label"
805+
},
806+
"newpage-last-session-name": {
807+
"defaultMessage": "<strong>Name:</strong> {name}",
808+
"description": "Last session name label"
809+
},
810+
"newpage-last-session-none": {
811+
"defaultMessage": "No session found",
812+
"description": "Last session not found text"
813+
},
814+
"newpage-last-session-title": {
815+
"defaultMessage": "Open last session",
816+
"description": "Open last session title"
817+
},
818+
"newpage-new-session-subtitle": {
819+
"defaultMessage": "Connect your micro:bit and collect movement data to build a machine learning model",
820+
"description": "Start new session subtitle"
821+
},
822+
"newpage-new-session-title": {
823+
"defaultMessage": "New session",
824+
"description": "Start new session title"
825+
},
826+
"newpage-section-one-title": {
827+
"defaultMessage": "Pick up where you left off",
828+
"description": "Homepage section one title"
829+
},
830+
"newpage-section-two-title": {
831+
"defaultMessage": "Start something new",
832+
"description": "Homepage section two title"
833+
},
834+
"newpage-subtitle": {
835+
"defaultMessage": "Introduce students to machine learning concepts through physical movement and data",
836+
"description": "Subtitle of micro:bit AI creator home page"
837+
},
838+
"newpage-title": {
839+
"defaultMessage": "New session",
840+
"description": "New page title"
841+
},
762842
"no-data-samples": {
763843
"defaultMessage": "No data samples",
764844
"description": "Empty data samples page status text"
@@ -887,6 +967,26 @@
887967
"defaultMessage": "Start training",
888968
"description": "Start training button text"
889969
},
970+
"steps-code": {
971+
"defaultMessage": "Code",
972+
"description": "Step in home page diagram"
973+
},
974+
"steps-collect-data": {
975+
"defaultMessage": "Collect data",
976+
"description": "Step in home page diagram"
977+
},
978+
"steps-improve": {
979+
"defaultMessage": "Improve",
980+
"description": "Step in home page diagram"
981+
},
982+
"steps-test-model": {
983+
"defaultMessage": "Test model",
984+
"description": "Step in home page diagram"
985+
},
986+
"steps-train": {
987+
"defaultMessage": "Train",
988+
"description": "Step in home page diagram"
989+
},
890990
"support-request": {
891991
"defaultMessage": "Please consider <link>raising a support request</link>.",
892992
"description": "Support request link text"

src/App.tsx

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,14 @@ import { deployment, useDeployment } from "./deployment";
2121
import { ProjectProvider } from "./hooks/project-hooks";
2222
import { LoggingProvider } from "./logging/logging-hooks";
2323
import TranslationProvider from "./messages/TranslationProvider";
24-
import HomePage from "./pages/HomePage";
25-
import { createHomePageUrl, createSessionPageUrl } from "./urls";
2624
import { sessionPageConfigs } from "./pages-config";
25+
import HomePage from "./pages/HomePage";
26+
import NewPage from "./pages/NewPage";
27+
import {
28+
createHomePageUrl,
29+
createNewPageUrl,
30+
createSessionPageUrl,
31+
} from "./urls";
2732

2833
export interface ProviderLayoutProps {
2934
children: ReactNode;
@@ -34,7 +39,6 @@ const logging = deployment.logging;
3439
const Providers = ({ children }: ProviderLayoutProps) => {
3540
const deployment = useDeployment();
3641
const { ConsentProvider } = deployment.compliance;
37-
const driverRef = useRef<MakeCodeFrameDriver>(null);
3842
return (
3943
<React.StrictMode>
4044
<ChakraProvider theme={deployment.chakraTheme}>
@@ -45,14 +49,7 @@ const Providers = ({ children }: ProviderLayoutProps) => {
4549
<ConnectProvider>
4650
<BufferedDataProvider>
4751
<ConnectionStageProvider>
48-
<ProjectProvider driverRef={driverRef}>
49-
<ProjectDropTarget>
50-
<ErrorBoundary>
51-
<EditCodeDialog ref={driverRef} />
52-
{children}
53-
</ErrorBoundary>
54-
</ProjectDropTarget>
55-
</ProjectProvider>
52+
{children}
5653
</ConnectionStageProvider>
5754
</BufferedDataProvider>
5855
</ConnectProvider>
@@ -66,11 +63,17 @@ const Providers = ({ children }: ProviderLayoutProps) => {
6663
};
6764

6865
const Layout = () => {
66+
const driverRef = useRef<MakeCodeFrameDriver>(null);
6967
return (
7068
// We use this even though we have errorElement as this does logging.
7169
<ErrorBoundary>
7270
<ScrollRestoration />
73-
<Outlet />
71+
<ProjectProvider driverRef={driverRef}>
72+
<EditCodeDialog ref={driverRef} />
73+
<ProjectDropTarget>
74+
<Outlet />
75+
</ProjectDropTarget>
76+
</ProjectProvider>
7477
</ErrorBoundary>
7578
);
7679
};
@@ -90,6 +93,10 @@ const createRouter = () => {
9093
path: createHomePageUrl(),
9194
element: <HomePage />,
9295
},
96+
{
97+
path: createNewPageUrl(),
98+
element: <NewPage />,
99+
},
93100
...sessionPageConfigs.map((config) => {
94101
return {
95102
path: createSessionPageUrl(config.id),

0 commit comments

Comments
 (0)