Sustainability Diary is a web application designed to support the integration of sustainability into design education. It serves as an interactive platform where students and educators can document, reflect, and engage with sustainability practices within their coursework and beyond. The purpose is to deepen the understanding of sustainability impacts and solutions through active learning and reflection.
git clone https://github.com/yourusername/sustainability-diary.git
cd sustainability-diary
npm install
Set up the backend server (assuming you have a backend server ready and configured).
Start the development server:
npm start
The application will be available at http://localhost:3000
.
Create a .env
file in the root directory of your project and add the following environment variables:
REACT_APP_API_URL=http://localhost:5000
Adjust the REACT_APP_API_URL
to match your backend server URL.
Users can register and log in to access the application's features. Authentication is handled using JSON Web Tokens (JWT).
The backend API endpoints handle the data and authentication. Below are some example endpoints:
POST /api/auth/register
: Register a new userPOST /api/auth/login
: Log in a userGET /api/reflections
: Get all reflectionsPOST /api/reflections
: Create a new reflectionPUT /api/reflections/:id
: Edit a reflectionDELETE /api/reflections/:id
: Delete a reflectionPOST /api/classrooms/join
: Join a classroomPOST /api/classrooms/create
: Create a classroomPOST /api/resources
: Add a sustainability resourceDashboardStudent.jsx
: Student dashboard viewDashboardTeacher.jsx
: Teacher dashboard viewReflectionEntries.jsx
: List of all reflectionsEditReflectionEntry.jsx
: Edit a reflection entryNewReflectionEntry.jsx
: Create a new reflection entryClassroomDetail.jsx
: Detailed view of a classroomCreateClassroom.jsx
: Create a new classroomJoinClassroom.jsx
: Join an existing classroomHelp.jsx
: Help and FAQ sectionSidebar.jsx
: Sidebar navigationLoadingIndicator.jsx
: Loading indicatorModal.jsx
: Modal componentFAQItem.jsx
: Individual FAQ itemFAQList.jsx
: List of FAQ items