Our project, BBY-09, is developing online course integration platforms to assist students and working professionals struggling to find suitable online courses with key features such as filtering and sorting.
- Frontend:
- VS Code 1.56.2
- HTML5
- CSS3
- JS(ES2022)
- Bootstrap 5.3.0
- JQuery 3.6.0
- sweetalert2 11.1.0
- Backend:
- Kaggle
- Node.js 16.0.0
- Database:
- MongoDB 5.0
- Firestore Cloud Storage
- Development Tools:
- SourceTree 4.2.2
- ChatGPT
- GitHub
- Sublime Merge 2.0.0
- Studio 3T 2022.11
.
βββ README.md
βββ databaseConnection.js
βββ index.js
βββ middleware
βΒ Β βββ admin.js
βΒ Β βββ edit-profile.js
βΒ Β βββ index.js
βΒ Β βββ login.js
βΒ Β βββ review.js
βΒ Β βββ session.js
βΒ Β βββ signup.js
βββ public
βΒ Β βββ css
βΒ Β βΒ Β βββ all-reviews.css
βΒ Β βΒ Β βββ bookmarks.css
βΒ Β βΒ Β βββ bootstrap.css
βΒ Β βΒ Β βββ common.css
βΒ Β βΒ Β βββ confetti-rain.css
βΒ Β βΒ Β βββ course-detail.css
βΒ Β βΒ Β βββ coursecard.css
βΒ Β βΒ Β βββ custom.css
βΒ Β βΒ Β βββ easter-egg.css
βΒ Β βΒ Β βββ edit-review.css
βΒ Β βΒ Β βββ form.css
βΒ Β βΒ Β βββ header.css
βΒ Β βΒ Β βββ main.css
βΒ Β βΒ Β βββ my-reviews.css
βΒ Β βΒ Β βββ profile.css
βΒ Β βΒ Β βββ read-my-review-card.css
βΒ Β βΒ Β βββ read-review-card.css
βΒ Β βΒ Β βββ reviewcard2.css
βΒ Β βΒ Β βββ search-list.css
βΒ Β βΒ Β βββ search.css
βΒ Β βΒ Β βββ slider.css
βΒ Β βΒ Β βββ write-review-card.css
βΒ Β βββ font
βΒ Β βΒ Β βββ Lato
βΒ Β βΒ Β βββ Lato-Black.ttf
βΒ Β βΒ Β βββ Lato-BlackItalic.ttf
βΒ Β βΒ Β βββ Lato-Bold.ttf
βΒ Β βΒ Β βββ Lato-BoldItalic.ttf
βΒ Β βΒ Β βββ Lato-Italic.ttf
βΒ Β βΒ Β βββ Lato-Light.ttf
βΒ Β βΒ Β βββ Lato-LightItalic.ttf
βΒ Β βΒ Β βββ Lato-Regular.ttf
βΒ Β βΒ Β βββ Lato-Thin.ttf
βΒ Β βΒ Β βββ Lato-ThinItalic.ttf
βΒ Β βΒ Β βββ OFL.txt
βΒ Β βββ image
βΒ Β βΒ Β βββ ads_main.png
βΒ Β βΒ Β βββ avatar.png
βΒ Β βΒ Β βββ bookmark.png
βΒ Β βΒ Β βββ camera.png
βΒ Β βΒ Β βββ closemenu.png
βΒ Β βΒ Β βββ complete.png
βΒ Β βΒ Β βββ coursla_main.png
βΒ Β βΒ Β βββ crown.png
βΒ Β βΒ Β βββ favicon.ico
βΒ Β βΒ Β βββ logo-coursera.svg
βΒ Β βΒ Β βββ logo-round-coursera.png
βΒ Β βΒ Β βββ logo-round-udemy.webp
βΒ Β βΒ Β βββ logo-udemy.svg
βΒ Β βΒ Β βββ openmenu.png
βΒ Β βΒ Β βββ randomimage
βΒ Β βΒ Β βΒ Β βββ 1.jpeg
βΒ Β βΒ Β βΒ Β βββ 2.jpeg
βΒ Β βΒ Β βΒ Β βββ 3.jpeg
βΒ Β βΒ Β βΒ Β βββ 4.jpeg
βΒ Β βΒ Β βΒ Β βββ 5.jpeg
βΒ Β βΒ Β βΒ Β βββ 6.jpeg
βΒ Β βΒ Β βΒ Β βββ 7.jpeg
βΒ Β βΒ Β βΒ Β βββ 8.jpeg
βΒ Β βΒ Β βΒ Β βββ 9.jpeg
βΒ Β βΒ Β βββ rating.png
βΒ Β βΒ Β βββ reviews.png
βΒ Β βΒ Β βββ rick-roll-rick-ashley.gif
βΒ Β βΒ Β βββ rick-roll-rick-rolled.gif
βΒ Β βΒ Β βββ selective.png
βΒ Β βΒ Β βββ setting.png
βΒ Β βΒ Β βββ udemy.png
βΒ Β βββ js
βΒ Β βββ bookmark.js
βΒ Β βββ common.js
βΒ Β βββ confetti-rain.js
βΒ Β βββ easter-egg.js
βΒ Β βββ image.js
βΒ Β βββ modal.js
βΒ Β βββ search-list.js
βββ utils.js
βββ views
βββ 404.ejs
βββ all-reviews.ejs
βββ bookmarks.ejs
βββ change-password.ejs
βββ course-detail.ejs
βββ edit-my-review.ejs
βββ edit-profile.ejs
βββ edit-review.ejs
βββ error.ejs
βββ find-password.ejs
βββ index-afterLogin.ejs
βββ index.ejs
βββ login-submit.ejs
βββ login.ejs
βββ my-review.ejs
βββ profile.ejs
βββ read-my-review.ejs
βββ read-review.ejs
βββ reset-password.ejs
βββ search-results.ejs
βββ signup-submit.ejs
βββ signup.ejs
βββ templates
βΒ Β βββ bookmarks-list.ejs
βΒ Β βββ easter-egg.ejs
βΒ Β βββ footer.ejs
βΒ Β βββ head.ejs
βΒ Β βββ header-beforeLogin.ejs
βΒ Β βββ header-index-beforeLogin.ejs
βΒ Β βββ header.ejs
βΒ Β βββ list.ejs
βΒ Β βββ loader.ejs
βΒ Β βββ nav-beforeLogin.ejs
βΒ Β βββ nav.ejs
βΒ Β βββ profile-avatar.ejs
βΒ Β βββ read-slider.ejs
βΒ Β βββ write-slider-dontchange.ejs
βΒ Β βββ write-slider.ejs
βββ write-review.ejsTo install and run the project, follow these steps:
- Install Node.js:
- Download and install Node.js from the official website (https://nodejs.org).
- Follow the installation instructions for your operating system.
- Clone the GitHub repository:
- Open a terminal or command prompt.
- Change to the directory where you want to clone the repository.
- Run the following command to clone the repository:
git clone- Replace with the URL of the GitHub repository.
- Install project dependencies:
- Navigate to the project directory in the terminal or command prompt.
- Run the following command to install the dependencies listed in the project's package.json file:
npm install- Replace with the URL of the GitHub repository.
- Set up environment variables:
- Create a .env file in the project root directory.
- Add the necessary environment variables to the .env file. Refer to the project documentation or the .env.example file for the required variables.
- Set up the database:
- Install and set up MongoDB.
- Configure the MongoDB connection URL in the .env file.
- Run the project:
- Run the following command to start the server:
npm start- The server should start running, and you should see a message indicating the port on which the server is listening.
- Access the web app:
- Open a web browser.
- Enter the URL http://localhost: in the address bar.
- Replace with the port number specified in the console output.
- Utilize the search functionality to find courses based on keywords.
- Apply filters such as course provider, difficulty level, or sorting to narrow down your search results.
- Click on a course to access its detailed information.
- Explore the course provider, difficulty level, enrollment number, description, provider and Coursla rating.
- Click on external link to go to the online course provider.
- Find the review section or option for each course.
- Read reviews left by other users to gain insights and perspectives.
- Write your own reviews, providing feedback on the course content, instructor, or learning experience.
- Look for a bookmark or save feature associated with each course.
- Click on the bookmark icon or use the provided option to save courses of interest.
- Access your bookmarked courses later in your account or profile section.
As per the project theme, we relied on AI technology to help develop our app. We used ChatGPT to help us generate project ideas, create functions, design our functions, and debug our code. In addition, we have employed ChatGpt to assist in the composition of professional documents.
For our project, we used two MOOC dataset that were publicly available on Kaggle. Iniitally, we attempted to use ChatGPT to help us sort all of the courses into ten categories. However, our team noticed that there were too many values (7000+ data points) and we learned that ChatGPT could only process the datasets in small batches. Because of this, we didn't use AI to clean our dataset. Instead, we cleaned our dataset manually using another tool (studio 3T).
Coursla used AI for the development of the application but it was not incorporated within the application itself.
- [Ai (Chelsea) Yang](https://github.com/chelseaY119)
- [Heesun Lee](https://github.com/heesun-task)
- [Yerim Moon](https://github.com/yerim01)
- [Riz Nur Saidy](https://github.com/rizgif)
- Hoda/BCIT
Node.js: Official website and documentation - https://nodejs.org
ChatGPT by OpenAI: OpenAI website and documentation - https://www.openai.com
Visual Studio Code: Official website and documentation - https://code.visualstudio.com
Bootstrap: Official website and documentation - https://getbootstrap.com
jQuery: Official website and documentation - https://jquery.com
sweetalert2: GitHub repository - https://github.com/sweetalert2/sweetalert2
Kaggle: Kaggle website and dataset documentation - https://www.kaggle.com
MongoDB: Official website and documentation - https://www.mongodb.com
Firestore Cloud Storage: Google Cloud Firestore documentation - https://cloud.google.com/firestore
SourceTree: Official website and documentation - https://www.sourcetreeapp.com
GitHub: Official website and documentation - https://github.com
Sublime Merge: Official website and documentation - https://www.sublimemerge.com
Studio3T: Official website and documentation - https://studio3t.com
MIT License
Copyright (c) 2023 Coursla
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- Ai (Chelsea) Yang: ayang106@my.bcit.ca
- Heesun Lee: hlee532@my.bcit.ca
- Yerim Moon: ymoon10@my.bcit.ca
- Riz Nur Saidy: rnursaidy@my.bcit.ca