Skip to content

gisioraelvis/Stack-Overflow-lite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Stack Overflow lite

Stack Overflow lite is a WebApp I designed and developed as part of THE Jitu Cohort 9 Software Development Training program(Full-Stack Web). It allows users to post questions and answers on various tags/topics. Users can upvote/downvote, comment on questions and answers. The application also has an admin dashboard for managing users, questions and answers.

Tech Stack

Frontend

Responsive UI design with:

  • Figma - UI design and prototyping
  • Angular 15 - frontend framework
  • NgRx - state management
  • Angular Material - UI components
  • ng2-charts - charts
  • Stacks Editor - rich text editor

Backend

RESTful API with:

  • TypeScript - programming language
  • Node.js - runtime environment
  • Express.js - web framework
  • Nodemailer - sending emails
  • EJS - for email templates
  • Node Cron - background services
  • MSSQL(Stored Procedures & Queries only, no ORM)
  • JWT - authentication and authorization
  • Bcrypt - password hashing
  • Dotenv - environment variables
  • Winston & Morgan - logging
  • Joi - dtos validation and sanitization
  • Postman - API testing and documentation

Features

  • Question and answer posting with rich text editor (Stacks Editor)
  • Search and filter questions/answers by tags/content
  • Upvote and downvote questions and answers
  • Commenting on questions and answers
  • Real-time UI updates with NgRx
  • User authentication and authorization with JWT
  • User dashboard for managing user profile, questions and answers
  • Password recovery with JWT and Nodemailer
  • Emails with Nodemailer and EJS for:
    • Notifications new users, questions and answers
    • Password recovery.
  • Background services with Node Cron for:
    • Sending scheduled emails and tasks
  • Admin dashboard for managing user accounts, questions, and answers
  • Soft deletes for users, questions and answers

Installation

Prerequisites

  • Node.js
  • NPM
  • Angular CLI v15
  • MSSQL Server 2022

Frontend

  1. Clone the repository.
  2. Run npm install to install the dependencies.
  3. Start the development server with ng serve -o.
  4. If the browser does not open automatically, navigate to http://localhost:4200.

Backend

  1. Clone the repository.
  2. Run npm install to install the dependencies.
  3. Create a database in MSSQL and update the database configuration in .env.
  4. Run the sql scripts in the database folder to create the db, necessary tables and stored procedures.
  5. Start the server with npm run start:dev.
  6. Send API requests to http://localhost:5500. Find included Postman collection in the root folder.

Screenshots

Home Page Empty Home Page Questions Page Empty Questions Page Question Page Tags Page Empty Tags Page Users Page Empty Users Page Sign In Page Sign Up Page Ask Question Page User Dashboard Page Admin Dashboard Page

Contributing

Contributions to this project are welcome. For major changes, please open an issue first to discuss what you would like to change.

Acknowledgements

This project was inspired by Stack Overflow. Special thanks to the Stack Overflow team for creating such a useful resource for developers around the world.

Special thanks to THE Jitu for the opportunity to learn and grow as a developer and to our instructor during the program Mr. Jonathan Ndambuki for his guidance and support throughout the program. 🙏🏾

Shoutout to my fellow trainees for the collaborations, encouragement, friendship and memories we made together. 🤗

Was an awesome experience and I'm glad to have been part of Cohort 9. 🥳

We did it! 🎉🎉🎉

About

Q&A WebApp built with Angular, NgRx, Material Design, ng2-charts, NodeJS(Express, Nodemailer, Node Cron, EJS), MSSQL (Stored Procedures & Queries)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published