Key Features • How To Use • Installation • API Endpoints • Related • License
- User authentication with Google or GitHub accounts using Auth0.
- Image search using Google Custom Search with suggestions for corrected search terms.
- Display of search results and information about the search duration.
- Ability to save favorite images to a user-specific list.
- View a user's unique list of favorite images.
- Light and dark theme.
- Clone the repository from GitHub.
- Navigate to the project directory.
- Follow instructions to setup client and server.
- Run
npm run setup
from project root directory. - Run
npm start
from project root directory.- Alternatively run
npm run dev
in client and server respectively.
- Alternatively run
- Navigate to http://localhost:5173 in your favorite browser to use the app.
- Clone the repository from GitHub.
- Navigate to the project directory.
- Follow instructions to setup client and server.
- Run
npm run dev
inserver
directory. - Open a new terminal and run
npm run dev
inclient
directory. - Navigate to http://localhost:5173 in your favorite browser to use the app.
Follow client setup instructions in client/README.md
Follow server setup instructions in server/README.md
GET /api/user
: Get a user from the database.POST /api/user
: Create a user in the database.PUT /api/user/{userId}
: Update a user in the database.DELETE /api/user/{userId}
: Delete a user from the database.
GET /api/user/{userId}/favorites
: Get a user's favorites.POST /api/user/{userId}/favorites
: Create a new favorite for user.PUT /api/user/{userId}/favorites/{favoriteId}
: Update a favorite for user.DELETE /api/user/{userId}/favorites/{favoriteId}
: Delete a favorite for user.
- FSU23D-integration - Repo for the Systemstöd och Integration Course of FSU23D.
- SnapCat - Mock Social Media for Cats, Powered by React, TypeScript, React Router, Vite, and Tailwind CSS.
- React Todo App - A simple todo-list application built with React
This project is licensed under the MIT License.
Checklist for System Support and Integration 3-Part System - ImageSearch:
[x] Create scripts to run both server and client
Klient (Client):
- Implement login functionality with Google or GitHub account using Auth0.
- Enable searching for images with a maximum of 10 results when the user is logged in (Google Custom Search).
- Implement a suggestion feature ("Menade du…") for misspelled search terms, allowing users to click on the corrected term for a new search.
- Display the duration of the search process.
- Allow users, when logged in, to save an image to their list of favorite pictures.
- Provide a section on the page where users can view their list of favorite images.
- Ensure that each user has a unique list of favorite images.
Server:
-
Create a JSON file on the server to store a list of users and their favorite images.
-
Implement a server endpoint to save a favorite image, validating the data using Joi before saving.
-
Develop a server endpoint that responds with a list of favorite images for a specific user.
-
[/] Define the data structure for the JSON file as specified:
[ { "user": "fakeuser", "favoriteImages": [ { "title": "faketitle", "byteSize": 2832098, "url": "http://………." } ] } ]
Allmänt (General):
- Submit the task on time.
- Utilize Git and GitHub for version control.
- Include a Readme with information on how to build the projects.
- Ensure that
node_modules
is not included in the submission.
Inlämning (Submission):
- Submit the project via the learning platform, either as a zip file or a link to the GitHub repository.
Additional Notes:
- Ensure the application is headless with a React frontend and a Node (Express) backend.
- Implement the feature to suggest corrections for misspelled search terms.
- Verify that the server endpoint for saving favorite images works seamlessly with the specified data structure.
- Consider user authentication and authorization aspects for securing user-specific data.
- Test the entire application to ensure all specified functionalities are working as expected.