From 64d7b1520f84e3d3987fcfda15ebebc4a088f367 Mon Sep 17 00:00:00 2001 From: Lidizz Date: Thu, 12 Jun 2025 12:53:59 +0200 Subject: [PATCH 1/5] added README.md --- README.md | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 212 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index fd3b758..a7e26e4 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,215 @@ -# React + Vite +# StudyHub + +StudyHub is a minimalist online learning platform designed to increase productivity and promote effective learning through consistent management of educational resources. Our goal is to enable instructors and educational institutions to deliver high quality learning experiences efficiently. + +## Table of Contents +- [Project Overview](#project-overview) +- [Features](#features) +- [Technologies](#technologies) +- [Prerequisites](#prerequisites) +- [Setup Instructions](#setup-instructions) + - [Backend Setup](#backend-setup) + - [Frontend Setup](#frontend-setup) + - [Database Setup](#database-setup) +- [Running the Application](#running-the-application) +- [Project Structure](#project-structure) +- [API Endpoints](#api-endpoints) +- [Contributing](#contributing) +- [Team Members](#team-members) +- [License](#license) + +## Project Overview +StudyHub is a platform that enables: +- **Students** + - Signup + - Login + - View: + - Enrolled courses + - Course info + - Course modules + - Course resources + - Course assignments + - Feedback and grade + - Download: + - Resources + - Own submitted assignments + - Upload: + - Submitting assignments -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. +- **Instructors** + - Signup + - Login + - Create: + - Course + - Course module + - Module resource + - Assignment + - Feedback and grade + - View: + - Teaching courses + - Course info + - Course modules + - Course resources + - Course assignments + - Provided feedback and grade + - Download: + - Resources + - Submitted assignments + - Update: + - Course + - Module + - Assignment + - Resource + - Delete: + - Module + - Assignment + - Resource + -Currently, two official plugins are available: +The frontend is built with React 19, utilizing Redux for state management and Tailwind CSS for styling. The backend, built with Java 21 and Spring Boot 3, provides a RESTful API for managing users, courses, assignments, modules, and resources, with data stored in a PostgreSQL database. + +## Features +- **User Authentication**: Login and signup functionality with role-based access (Student, Instructor). +- **Course Management**: + - Create and edit courses (Instructors). + - View course details, modules, assignments and resources. +- **Module Management**: + - Create, edit, and delete course modules (Instructors). + - View module details and associated resources. +- **Assignment Management**: + - Create, edit, and delete assignments (Instructors). + - Submit assignments with file uploads (Students). + - Grade submissions and provide feedback (Instructors). +- **Resource Management**: + - Upload and manage text or file-based resources for modules (Instructors). + - Download resources (Students). +- **Theme Support**: Light and dark mode toggle for better user experience. +- **Responsive Design**: Mobile-friendly interface with Tailwind CSS. + +## Technologies +### Frontend +- **React**: ^19.0.0 +- **React Router**: ^7.4.1 +- **Redux Toolkit**: ^2.6.1 +- **Axios**: ^1.8.4 +- **Tailwind CSS**: ^3.4.17 +- **Lucide React**: ^0.485.0 +- **Vite**: ^6.3.5 +- **ESLint**: ^9.21.0 +- **Prettier**: ^3.0.0 + +### Backend +- **Java**: 21 +- **Spring Boot**: 3 +- **PostgreSQL**: Database + +### Development Tools +- **Node.js**: ^20.x +- **npm** +- **Maven** +- **Postman** +- **Swagger** +- **Git** + +## Prerequisites (used by us) +- **Node.js**: Version 20.x or higher +- **Java**: Version 21 +- **Maven**: For building the Spring Boot backend +- **PostgreSQL**: Version 15 or higher +- **Git**: For cloning the repository +- **Code Editor**: Developed with Webstorm oand IntelliJ IDEA but any editor can work + +## Setup Instructions + +### Backend Setup +1. **Clone the Repository**: + - Recommended to follow the readme on: [StudyHub Backend Repository](https://github.com/Lidizz/studyhub-backend) -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh - -## Expanding the ESLint configuration - -If you are developing a production application, we recommend using TypeScript and enable type-aware lint rules. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project. + **Or clone from the following:** + ```bash + git clone + cd studyhub-backend + ``` +2. **Configure PostgreSQL**: + - Create a PostgreSQL database named `studyhub-db`. + - Update the `application.properties` file in `src/main/resources` with your database credentials: + ```properties + spring.datasource.url=jdbc:postgresql://localhost:5432/studyhub-db + spring.datasource.username=your-username + spring.datasource.password=your-password + spring.jpa.hibernate.ddl-auto=update + ``` +3. **Build and Run the Backend**: + ```bash + mvn clean install + mvn spring-boot:run + ``` + The backend will run on `http://localhost:8080`. + +### Frontend Setup +1. **Navigate to the Frontend Directory**: + ```bash + cd studyhub-client + ``` +2. **Install Dependencies**: + ```bash + npm install + ``` + +3. **Run the Frontend**: + ```bash + npm run dev + ``` + The frontend will run on `http://localhost:5173`. + +## Running the Application +1. Run the backend server (`mvn spring-boot:run`). +2. Run the frontend development server (`npm run dev`). +3. Open `http://localhost:5173` in your browser to access the application. +4. Use the signup page (`/signup`) to create a new user account or log in (`/login`) with existing credentials. + +## Project Structure +### Frontend (`studyhub-client`) +``` +studyhub-client/ +├── src/ +│ ├── components/ +│ │ ├── assignment/ +│ │ ├── common/ +│ │ ├── course/ +│ │ ├── module/ +│ │ ├── resource/ +│ │ ├── user/ +│ ├── pages/ +│ ├── services/ +│ ├── store/ +│ ├── utils/ +│ ├── App.jsx +│ ├── index.css +│ ├── main.jsx +│ ├── themeConfig.js +├── eslint.config.js +├── package.json +├── postcss.config.js +├── tailwind.config.js +├── vite.config.js +``` + +## Contributing +1. Fork the repository. +2. Create a feature branch (`git checkout -b feature/your-feature`). +3. Commit your changes (`git commit -m "Add your feature"`). +4. Push to the branch (`git push origin feature/your-feature`). +5. Create a pull request. + +Please ensure code follows the ESLint and Prettier configurations for the frontend and adheres to Java coding standards for the backend. + +## Team Members +- Lidor Shachar +- Sahrish Nosheen +- Christin Wøien Skattum +- Camilla Dahl Strømberg +- Adnan Mohamed Osman Arab + +## License +This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. \ No newline at end of file From 5886a1d35f65935277da048471610769d636bfbd Mon Sep 17 00:00:00 2001 From: Lidizz Date: Thu, 12 Jun 2025 12:57:32 +0200 Subject: [PATCH 2/5] fix typo --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a7e26e4..ddd5094 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # StudyHub -StudyHub is a minimalist online learning platform designed to increase productivity and promote effective learning through consistent management of educational resources. Our goal is to enable instructors and educational institutions to deliver high quality learning experiences efficiently. +StudyHub is a minimalist online learning platform designed to increase productivity and promote effective learning through consistent management of educational resources. +Our goal is to enable instructors and educational institutions to deliver high quality learning experiences efficiently. ## Table of Contents - [Project Overview](#project-overview) @@ -117,7 +118,7 @@ The frontend is built with React 19, utilizing Redux for state management and Ta - **Maven**: For building the Spring Boot backend - **PostgreSQL**: Version 15 or higher - **Git**: For cloning the repository -- **Code Editor**: Developed with Webstorm oand IntelliJ IDEA but any editor can work +- **Code Editor**: Developed with Webstorm and IntelliJ IDEA but any editor can work ## Setup Instructions From c5c737229852322d2e9f8fcd7f3b43f863eaf746 Mon Sep 17 00:00:00 2001 From: Lidizz Date: Thu, 12 Jun 2025 12:59:10 +0200 Subject: [PATCH 3/5] refactoring --- README.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index ddd5094..93c7fbf 100644 --- a/README.md +++ b/README.md @@ -195,7 +195,13 @@ studyhub-client/ ├── tailwind.config.js ├── vite.config.js ``` - +## Team Members +- Lidor Shachar +- Sahrish Nosheen +- Christin Wøien Skattum +- Camilla Dahl Strømberg +- Adnan Mohamed Osman Arab + ## Contributing 1. Fork the repository. 2. Create a feature branch (`git checkout -b feature/your-feature`). @@ -204,13 +210,8 @@ studyhub-client/ 5. Create a pull request. Please ensure code follows the ESLint and Prettier configurations for the frontend and adheres to Java coding standards for the backend. + -## Team Members -- Lidor Shachar -- Sahrish Nosheen -- Christin Wøien Skattum -- Camilla Dahl Strømberg -- Adnan Mohamed Osman Arab - -## License -This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. \ No newline at end of file +[//]: # (## License) + +[//]: # (This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.) \ No newline at end of file From 267955f1e9d6e5dc4b517f2ee10391290f923dc6 Mon Sep 17 00:00:00 2001 From: Lidizz Date: Thu, 12 Jun 2025 13:04:03 +0200 Subject: [PATCH 4/5] refactoring --- README.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 93c7fbf..7534a72 100644 --- a/README.md +++ b/README.md @@ -11,13 +11,12 @@ Our goal is to enable instructors and educational institutions to deliver high q - [Setup Instructions](#setup-instructions) - [Backend Setup](#backend-setup) - [Frontend Setup](#frontend-setup) - - [Database Setup](#database-setup) - [Running the Application](#running-the-application) - [Project Structure](#project-structure) -- [API Endpoints](#api-endpoints) - [Contributing](#contributing) - [Team Members](#team-members) -- [License](#license) + +[//]: # (- [License](#license)) ## Project Overview StudyHub is a platform that enables: @@ -112,7 +111,7 @@ The frontend is built with React 19, utilizing Redux for state management and Ta - **Swagger** - **Git** -## Prerequisites (used by us) +## Prerequisites - **Node.js**: Version 20.x or higher - **Java**: Version 21 - **Maven**: For building the Spring Boot backend @@ -124,13 +123,13 @@ The frontend is built with React 19, utilizing Redux for state management and Ta ### Backend Setup 1. **Clone the Repository**: - - Recommended to follow the readme on: [StudyHub Backend Repository](https://github.com/Lidizz/studyhub-backend) + - Recommended to follow the readme on: [StudyHub Backend Repository](https://github.com/Lidizz/studyhub-backend) - **Or clone from the following:** - ```bash - git clone - cd studyhub-backend - ``` + **Or clone from the following:** + ```bash + git clone + cd studyhub-backend + ``` 2. **Configure PostgreSQL**: - Create a PostgreSQL database named `studyhub-db`. - Update the `application.properties` file in `src/main/resources` with your database credentials: From 0afef66dc404b45bd05bbf58dab6ea8d9c654524 Mon Sep 17 00:00:00 2001 From: Lidizz Date: Thu, 12 Jun 2025 13:12:09 +0200 Subject: [PATCH 5/5] refactoring --- README.md | 87 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 49 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 7534a72..f4fc2b1 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,15 @@ -# StudyHub +# StudyHub Frontend + +![ReactJS](https://img.shields.io/badge/ReactJS-19-blue) +![NodeJS](https://img.shields.io/badge/NodeJS-20-green) +![Vite](https://img.shields.io/badge/Vite-6-purple) +![Status](https://img.shields.io/badge/Status-Development-red) StudyHub is a minimalist online learning platform designed to increase productivity and promote effective learning through consistent management of educational resources. Our goal is to enable instructors and educational institutions to deliver high quality learning experiences efficiently. ## Table of Contents +- [Project Structure](#project-structure) - [Project Overview](#project-overview) - [Features](#features) - [Technologies](#technologies) @@ -12,11 +18,37 @@ Our goal is to enable instructors and educational institutions to deliver high q - [Backend Setup](#backend-setup) - [Frontend Setup](#frontend-setup) - [Running the Application](#running-the-application) -- [Project Structure](#project-structure) -- [Contributing](#contributing) - [Team Members](#team-members) +[//]: # (- [Contributing](#contributing)) [//]: # (- [License](#license)) + +## Project Structure +### Frontend (`studyhub-client`) +``` +studyhub-client/ +├── src/ +│ ├── components/ +│ │ ├── assignment/ +│ │ ├── common/ +│ │ ├── course/ +│ │ ├── module/ +│ │ ├── resource/ +│ │ ├── user/ +│ ├── pages/ +│ ├── services/ +│ ├── store/ +│ ├── utils/ +│ ├── App.jsx +│ ├── index.css +│ ├── main.jsx +│ ├── themeConfig.js +├── eslint.config.js +├── package.json +├── postcss.config.js +├── tailwind.config.js +├── vite.config.js +``` ## Project Overview StudyHub is a platform that enables: @@ -167,33 +199,7 @@ The frontend is built with React 19, utilizing Redux for state management and Ta 2. Run the frontend development server (`npm run dev`). 3. Open `http://localhost:5173` in your browser to access the application. 4. Use the signup page (`/signup`) to create a new user account or log in (`/login`) with existing credentials. - -## Project Structure -### Frontend (`studyhub-client`) -``` -studyhub-client/ -├── src/ -│ ├── components/ -│ │ ├── assignment/ -│ │ ├── common/ -│ │ ├── course/ -│ │ ├── module/ -│ │ ├── resource/ -│ │ ├── user/ -│ ├── pages/ -│ ├── services/ -│ ├── store/ -│ ├── utils/ -│ ├── App.jsx -│ ├── index.css -│ ├── main.jsx -│ ├── themeConfig.js -├── eslint.config.js -├── package.json -├── postcss.config.js -├── tailwind.config.js -├── vite.config.js -``` + ## Team Members - Lidor Shachar - Sahrish Nosheen @@ -201,14 +207,19 @@ studyhub-client/ - Camilla Dahl Strømberg - Adnan Mohamed Osman Arab -## Contributing -1. Fork the repository. -2. Create a feature branch (`git checkout -b feature/your-feature`). -3. Commit your changes (`git commit -m "Add your feature"`). -4. Push to the branch (`git push origin feature/your-feature`). -5. Create a pull request. - -Please ensure code follows the ESLint and Prettier configurations for the frontend and adheres to Java coding standards for the backend. +[//]: # (## Contributing) + +[//]: # (1. Fork the repository.) + +[//]: # (2. Create a feature branch (`git checkout -b feature/your-feature`).) + +[//]: # (3. Commit your changes (`git commit -m "Add your feature"`).) + +[//]: # (4. Push to the branch (`git push origin feature/your-feature`).) + +[//]: # (5. Create a pull request.) + +[//]: # (Please ensure code follows the ESLint and Prettier configurations for the frontend and adheres to Java coding standards for the backend.) [//]: # (## License)