Overview
CodeStack is a collaborative question-and-answer web application similar to StackOverflow (Q&A platform). It allows users to ask questions, provide answers, and interact with the community through various features like voting, tagging, and user profiles. This project is a collaborative effort by a five-member team, where I contribute as a Full Stack Developer.
The initial version (1.0.0) was developed in one month, and the platform is currently running on version 1.8.0. CodeStack is built using modern web technologies, including React.js (v18), Node.js, Express.js, MongoDB, TypeScript, and several UI and utility libraries.
Features
1. User Authentication
- Users can sign up and log in manually or via Google and GitHub.
- Manually registered users must select a unique username.
- For users signing up via Google or GitHub, the username is automatically generated from the first part of their email.
2. Newsfeed
- A dynamic page displaying all posted questions, with an “ajax load more” feature for seamless content loading.
3. Search Question
- Authenticated users can search questions by question title and tag.
4. Ask a Question
- Authenticated users can post questions that include a title, description, images, and tags.
5. Question Details
- Authenticated users can view detailed information about a question.
- Users who posted the question can edit or delete it.
- Questions can be saved for later, shared, or interacted with via votes and answers.
6. Answering Questions
- Authenticated users can post answers to any question.
- Users can edit or delete their own answers.
7. Voting
- Users can upvote or like questions, with real-time updates reflecting across the platform.
8. Tag Page
- A dedicated page that displays all tags used in the platform, along with the number of questions associated with each tag.
- Clicking a tag redirects the user to a page that lists all questions tagged with the selected keyword.
9. User Directory
- A page that lists all registered users. Clicking on a user’s card navigates to their public profile.
10. Public User Profile
- Displays user details, including personal information and statistics on questions and answers posted by the user.
11. Badges & Levels
- A dedicated page explaining the platform’s badge and level system (e.g., Level 1, Level 2, Top User). Users can earn levels and badges based on specific criteria.
12. Sidebar Widgets
- Two sections:
- Top 5 tags based on popularity.
- Top 5 questions based on the number of answers.
13. Top Navbar
- A search bar allows authenticated users to search for questions by title or tag.
My Profile Features
14. User Dashboard
- Displays a user’s activity summary, including total questions and answers posted.
- Shows the badges and levels earned by the user.
- Includes a chart visualizing the user’s question and answer posting activity by month.
- Displays personal information of the logged-in user.
15. Answers Page
- Lists all answers provided by the logged-in user.
16. Questions Page
- Lists all questions posted by the logged-in user.
17. Saved Questions Page
- Displays all questions saved by the logged-in user.
18. Edit Profile
- Allows users to update their personal information, including profile photo.
Upcoming Features (In Progress)
19. Super Admin Role
- A new role will be introduced, allowing the super admin to manage the entire platform.
20. Super Admin Blog Posting
- Super admins will have the ability to post blogs.