- 📖 About the Project
- 💻 Getting Started
- 👥 Team Members
- 📅 Future Features
- 🤝 Contributing
- 🫰 Show Support
- 🙏 Acknowledgements
- 📝 License
oceanThreads is a modern question-and-answer (Q&A) website that is built different using web technologies for the students and instructors of General Assembly.
It is inspired by other knowledge markets such as stackoverflow.com, quora.com, etc. oceanThreads is a kind of Collective Intelligence (CI) solution which can be considered as an alternative to Artificial intelligence (AI) to provide students with an interactive, progressive and human-oriented learning journey.
“Now is no time to think of what you do not have. Think of what you can do with that there is.” ― Ernest Hemingway, The Old Man and the Sea
- Minimal, clean, responsive layout based on Bootstrap boilerplate.
- Vanilla Node.js code from scratch with no additional frameworks.
- OAuth 2.0 Authentication: Login/Logout seamlessly through Google.
- Simple navigation bar to let users surf between different pages.
- Threads listing page with user avatars and filtering feature.
- Thread standalone viewing page with commenting functionality.
- User dashboard that shows threads with update/delete ability.
- Leaderboard page to rank users by the number of threads created.
Server
Database
To get a local copy up and running, follow these steps.
It is recommended to have the following software (or newer versions) to run the project properly:
- git v2.41.0
- npm v9.8.1
- Node.js v20.5.0
- MongoDB v6.0.8
- Chrome v115.0.0
Clone this repository to your desired folder:
git clone [email protected]:almadhoob/ocean-threads.git
Touch an '.env' file and include the following keys: DATABASE_URL, GOOGLE_CLIENT_ID, GOOGLE_SECRET, GOOGLE_CALLBACK, and a random SECRET. After that, install the project with:
cd ocean-threads
npm install
npm start
👤 Ali Haji (El Capitán) | GitHub - LinkedIn
- The shipmaster, a Full-stack Engineer who manages everything on the watercraft starting from task assignment to implementation. He also utilises creative skills to wireframe maps before navigation.
👤 Ahmed Almadhoob | GitHub - LinkedIn
- The navigator, a DevOps Engineer who deals with clean codebase initialisation, pull requests handling, testing and deployment. He also interacts with the terminal as a back-end developer on demand.
👤 Hamad Alhibshi | GitHub - LinkedIn
- The engineering officer, a pure Back-end Engineer who works 24/7 to add many lines of code for routes and controllers. He also deals with database schemas to make sure it runs smoothly with the engine.
👤 Rashid Althawadi | GitHub - LinkedIn
- The communications officer, a pure Front-end Engineer who deals with designing webpages and adding styling sheets. As a multimedia specialist, he creates wonderful logos, images and video clips.
- Full-text search for all the threads and comments.
- Adding experience points (XP) to the leaderboard.
- Push notification to email using OneSignal API.
Contributions, issues, and feature requests are welcome. Feel free to check the issues page.
To create a new branch each time:
git checkout main
git pull origin main
git checkout -b yourNewBranch
To push your branch:
git add .
git commit -m "yourComment"
git push -u origin yourBranch
If you like this project then support us by donations or buy a cup of coffee for each team member at least.
We would like to thank Tor Johnson, Avan Sardar, Ahlam Almutawa, Mohamed Faris and Ernest Hemingway.
This is an MIT-licensed project.