CodeGenius is a Question-and-Answer forum for students and lecturers.
Eddie Sosera
Explore the docs
View Demo
·
Report Bug
·
Request Feature
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.
- Built With
- Installation
- Features
- Technical Functionality
- Development Process
- Final Outcomes
- Reporting Issues
- Authors
- Licenses
- Contact
- Clone the repo
git clone https://github.com/eddiesosera/codegenius.git
- Install NPM packages
npm install
- Start the client server in
client/term4-group2-qna
npm start
- Start the backend server in
server
filenpm run dev
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)
.
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.
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.
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.
The question results displays more than 5 results as seen in the question bar. Additionally the user can filter the type of results.
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.
The admin’s view gives the admin special permission to delete ant user’s question.
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.
The Development Process
the technical implementations and functionality done for the website.
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.
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.
-
Fork the repository:
- Fork this repository to your GitHub account.
-
Clone your fork:
- Clone the repository to your local machine using the following command:
git clone https://github.com/eddiesosera/codegenius.git
- Clone the repository to your local machine using the following command:
-
Create a branch:
- Create a new branch for your feature or bug fix:
git checkout -b feature-branch
- Create a new branch for your feature or bug fix:
-
Make your changes:
- Make your desired changes in the codebase.
-
Test your changes:
- Ensure that your changes do not introduce new issues.
- Run relevant tests if available.
-
Commit your changes:
- Commit your changes with a descriptive commit message:
git commit -m "Your informative commit message"
- Commit your changes with a descriptive commit message:
-
Push your changes:
- Push your changes to your forked repository:
git push origin feature-branch
- Push your changes to your forked repository:
-
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.
- Open a pull request against the
If you encounter any issues or have suggestions, please open an issue on GitHub.
Distributed under the MIT License. See License for more information.
LinkedIn - @eddiesosera, or Visit website.