/CodeFlow

CodeFlow is my project aimed to create a platform for asking and answering programming related questions

Primary LanguageHTML

Welcome to CodeFlow

👋 Hi there! CodeFlow is a web application that allows developers to post and answer programming-related questions. It is similar to StackOverflow and was developed using Flask, with a MySQL database and SQLAlchemy as the ORM. The application also makes use of Azure services and the flasgger library for Swagger UI documentation.

🚀 Getting Started

To get started with CodeFlow, you'll need to have Python 3 and Flask installed on your machine. Follow the instructions on the official Python and Flask websites to install these dependencies.

Once you have these dependencies installed, you can clone the repository to your local machine using the following command:

git clone https://github.com/VitaliySynytskyi/CodeFlow.git

Then, navigate to the project directory and install the remaining dependencies using the following command:

cd CodeFlow 
pip install -r requirements.txt

To start the application, simply run:

python manage.py 
flask run

This will start the development server on http://localhost:5000.

🛠️ Technology Stack

  • Backend: Flask - is a web development framework that allows for easy creation of web applications with Python. Flask-WTF is a Flask extension for working with web forms.
  • Frontend: HTML/CSS, Bootstrap - are used for creating the user interface and styling the web pages.
  • Database: MySQL - is a relational database management system used for storing and retrieving data.
  • ORM: SQLAlchemy - is an Object-Relational Mapping library that provides a way to interact with databases using Python objects.
  • Public API - thecatapi and cat-fact
  • Azure services - refers to cloud computing services provided by Microsoft Azure, which can be used for hosting, storage, and other services.
  • Unit testing framework: Pytest - is a testing framework for Python that allows for easy creation of tests and test suites.
  • Dependency injection: Constructor injection (builtin) - is a design pattern that allows for the injection of dependencies into objects at runtime. In this case, constructor injection is built into the project.
  • Swagger UI: flasgger - is a tool used for generating interactive API documentation from Swagger-compliant API descriptions.
  • Deployment to Azure: Azure Web App service - is a platform-as-a-service (PaaS) offering from Microsoft Azure that allows for deployment and scaling of web applications.

📝 Tasks

The following tasks were completed to develop CodeFlow:

  • Create Solution
  • Create DB and AppService on Azure
  • Connect ORM
  • Create Page About with my information
  • Create Test Page for Displaying data
  • Create Test Page for Creating objects
  • Deploy the project on Azure
  • Logs
  • Create Application Insights
  • Connect Application Insights
  • Add README on GIT

💬 Contributing

Contributions to CodeFlow are always welcome! To contribute:

  1. Fork the repository to your own account
  2. Create a new branch from the main branch
  3. Make your changes and push them to your branch
  4. Create a pull request to merge your changes into the main branch
  5. Follow the code style used in the project and write tests for any new functionality you add.

📝 About the Author

Thank you for your interest in CodeFlow! If you have any questions or feedback, feel free to reach out to me via email or Telegram. 👍

📒 Lab 3

  • I introduce a new feature that involves creating a blog where the most commonly asked questions will be addressed in an aesthetically pleasing manner.
  • Oleksandr Zhuk
  • My project
  • Pull Request

Lab 4