Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eddiesosera/codegenius
CodeGenius is a Question-and-Answer forum for students and lecturers built with React.js and Express.js.
https://github.com/eddiesosera/codegenius
developer-forum developer-platform developer-tool express expressjs mern-stack mongodb mongoosejs qna react reactjs
Last synced: about 2 months ago
JSON representation
CodeGenius is a Question-and-Answer forum for students and lecturers built with React.js and Express.js.
- Host: GitHub
- URL: https://github.com/eddiesosera/codegenius
- Owner: eddiesosera
- Fork: true (CSWilder02/Term-4-Group-2---Project)
- Created: 2023-09-22T19:31:45.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-21T05:27:45.000Z (12 months ago)
- Last Synced: 2024-09-18T11:39:16.389Z (about 2 months ago)
- Topics: developer-forum, developer-platform, developer-tool, express, expressjs, mern-stack, mongodb, mongoosejs, qna, react, reactjs
- Language: JavaScript
- Homepage: https://codegeniuss-9493c6d0482e.herokuapp.com/
- Size: 59.8 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![GitHub repo size](https://img.shields.io/github/repo-size/eddiesosera/codegenius?color=%23FF4C54)
![GitHub watchers](https://img.shields.io/github/watchers/eddiesosera/codegenius?color=%23FFA191)
![GitHub language count](https://img.shields.io/github/languages/count/eddiesosera/codegenius?color=%231EBBBA)
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/eddiesosera/codegenius?color=%234E54AD)
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks]][forks-url]
[![Starsgazers][stars]][stars-url]#
![Banner][banner]
CodeGenius
CodeGenius is a Question-and-Answer forum for students and lecturers.
Eddie Sosera
Explore the docs
View Demo
·
Report Bug
·
Request Feature
## About this Project
![Header][header]
CodeGenius is a robust MERN Stack Question-and-Answer forum that serves as a dynamic platform for fostering collaboration between students and lecturers. With a focus on facilitating the exchange of development-specific knowledge and expertise, CodeGenius empowers users to post questions, provide answers, and engage in a rich learning environment.
## Table of Contents
- [Built With](#built-with)
- [Installation](#installation)
- [Features](#features)
- [Technical Functionality](#technical-functionality)
- [Development Process](#development-process)
- [Final Outcomes](#final-outcomes)
- [Reporting Issues](#reporting-issues)
- [Authors](#authors)
- [Licenses](#licenses)
- [Contact](#contact)
## Built With
- [![React][react.js]][react-url]
- [![Express][express.js]][express-url]
- [![Mongodb][mongodb]][mongodb-url]
- [![jwt][jwt]][jwt-url]
- [![bootstrap][bootstrap]][bootstrap-url]
- [![nodemon][nodemon]][nodemon-url]## Installation
1. Clone the repo
```sh
git clone https://github.com/eddiesosera/codegenius.git
```
2. Install NPM packages
```sh
npm install
```
3. Start the client server in `client/term4-group2-qna`
```sh
npm start
```
4. Start the backend server in `server` file
```sh
npm run dev
```
## Features
![Homescreen][home]
The homescreen displays all the questions which you can filter by upvotes and time (by default it shows the latest). You can answer other people’s questions by clicking on `Answer(0)`.
![Question][question]
The question page allows users to give an answer to the question and they can browse through other answers for help.
Users can also reply to answers.
![Create Question][createquestion]
The Create Question page allows users to create questions by filling in the form they can also add images with a size limit of 500kb.
![Search Bar][searchbar]
The search allows users to search anything from questions, users and topics. The most relevant results will be at the top. The orange button takes you to the question results page.
![Search Results][searchresults]
The question results displays more than 5 results as seen in the question bar. Additionally the user can filter the type of results.
![User Profile][userprofile]
The User Profile is a summary of the user’s information such reliability score, bio, questions asked, replies and answers.The reliability score is generated based on the user’s number of questions and the number of votes each question has.
They have the option to edit their profile.
![Admin][admin]
The admin’s view gives the admin special permission to delete ant user’s question.
#### Technical Funtionality
- `CRUD funtionality` on Questions, Answers, Replies(additional) and Users.
- `Upvote and Downvote` questions.
- `Search and Filter` Questions being displayed.
- `Authentication` using password encryption library.
- `Authorization` using tokens (JWTs).
- `Reliability score` system based on interaction.
#### ERD
![Entity Relationship Diagram][erd]
## Development Process
The `Development Process` the technical implementations and functionality done for the website.
#### Highlights
The setup of the project was overal fun for me as I got the opportunity explore complex task like creating dynamic functions that work as a state store without using any library.
#### Challenges
Generally the project was not challenging as we did a similar project in our previous term, however the backend was a bit challenging as I had to familiarize myself again with `Vanailla Javascript.`
## Final Outcomes
[View Demonstration](https://www.youtube.com/watch?v=K2TSUsroUAA)
## Conclusion
### How to Contribute
1. **Fork the repository:**
- Fork this repository to your GitHub account.
2. **Clone your fork:**
- Clone the repository to your local machine using the following command:
```
git clone https://github.com/eddiesosera/codegenius.git
```3. **Create a branch:**
- Create a new branch for your feature or bug fix:
```
git checkout -b feature-branch
```4. **Make your changes:**
- Make your desired changes in the codebase.
5. **Test your changes:**
- Ensure that your changes do not introduce new issues.
- Run relevant tests if available.6. **Commit your changes:**
- Commit your changes with a descriptive commit message:
```
git commit -m "Your informative commit message"
```7. **Push your changes:**
- Push your changes to your forked repository:
```
git push origin feature-branch
```8. **Create a pull request:**
- Open a pull request against the `main` branch of the original repository.
- Provide a clear title and description for your pull request.
### Reporting Isssues
If you encounter any issues or have suggestions, please [open an issue](https://github.com/eddiesosera/codegenius/issues) on GitHub.
### Authors
### License
Distributed under the MIT License. See [License](https://opensource.org/license/mit/) for more information.
### Contact
**LinkedIn** - [@eddiesosera](https://www.linkedin.com/in/eddiesosera/), or
[Visit website](https://engineeredimagination.co.za).
[react.js]: https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB
[react-url]: https://reactjs.org/
[express.js]: https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge&logo=express&logoColor=%2361DAFB
[express-url]: https://expressjs.com/
[mongodb]: https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge&logo=mongodb&logoColor=white
[mongodb-url]: https://www.mongodb.com/
[jwt]: https://img.shields.io/badge/JWT-black?style=for-the-badge&logo=JSON%20web%20tokens
[jwt-url]: https://jwt.io/
[bootstrap]: https://img.shields.io/badge/bootstrap-%238511FA.svg?style=for-the-badge&logo=bootstrap&logoColor=white
[bootstrap-url]: https://getbootstrap.com/
[nodemon]: https://img.shields.io/badge/NODEMON-%23323330.svg?style=for-the-badge&logo=nodemon&logoColor=%BBDEAD
[nodemon-url]: https://nodemon.io/
[contributors-shield]: https://img.shields.io/github/contributors/CSWilder02/Term-4-Group-2---Project.svg?style=for-the-badge
[contributors-url]: https://github.com/CSWilder02/Term-4-Group-2---Project/graphs/contributors
[forks]: https://img.shields.io/github/forks/CSWilder02/Term-4-Group-2---Project.svg?style=for-the-badge
[forks-url]: https://github.com/CSWilder02/Term-4-Group-2---Project/forks
[stars]: https://img.shields.io/github/stars/CSWilder02/Term-4-Group-2---Project.svg?style=for-the-badge
[stars-url]: https://github.com/CSWilder02/Term-4-Group-2---Project/stargazers
[eddie-img]: https://github.com/eddiesosera.png[banner]: client/src/components/assets/readme/banner.png
[header]: client/src/components/assets/readme/header.png
[home]: client/src/components/assets/readme/features/codegenius_feature_home.png
[question]: client/src/components/assets/readme/features/codegenius_feature_question.png
[createquestion]: client/src/components/assets/readme/features/codegenius_feature_createQuestion.png
[searchbar]: client/src/components/assets/readme/features/codegenius_feature_searchbar.png
[searchresults]: client/src/components/assets/readme/features/codegenius_feature_searchResults.png
[userprofile]: client/src/components/assets/readme/features/codegenius_feature_userProfile.png
[admin]: client/src/components/assets/readme/features/codegenius_feature_admin.png
[erd]: client/src/components/assets/readme/process/erd.png