Skip to content

Latest commit

 

History

67 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NowShare

License Python FastAPI Strawberry GitHub Actions Docker Swarm

NowShare is a modern knowledge sharing platform, enabling communities to create, share, and discuss content efficiently. This project is structured as a monorepo, containing both backend and frontend applications.

Note: This is a side project developed for learning and experimentation purposes.


🛠 Tech Stack

  • Frontend: Next.js 15, TypeScript, Tailwind CSS
  • Backend: FastAPI & Strawberry (Python)
  • Database: PostgreSQL (SQLAlchemy)
  • Testing: Pytest, FastAPI TestClient
  • CI/CD: GitHub Actions
  • Deployment: Docker Swarm

✅ To-Do List

  • Set up CI/CD pipeline (GitHub Actions)

Frontend

  • Project setup with Next.js 15 + Tailwind CSS
  • Basic UI for knowledge pages
  • Implement oauth flow with github
  • Implement pages for article crud
  • Implement components for article comment crud
  • Integrate with backend API for data persistence

Backend

  • Project setup (FastAPI)
  • Database schema for users, articles and comments
  • Set up graphql schemas and mutations for articles and comments
  • Oauth with github
  • Implement article CRUD (read, update, delete)
  • Implement user comment CRUD (read, update, delete)
  • Tests

▶️ Getting Started

Clone the repository

git clone https://github.com/your-username/knowledge-platform.git
cd knowledge-platform

Install dependencies and run applications

For frontend:

cd frontend
npm install
npm run dev

For backend:

First, install Poetry, then install the project dependencies:

cd backend
poetry install
poetry run task run

📜 Changelog

v0.1.0 - Initial Setup

  • ✅ Created monorepo structure
  • ✅ Initialized frontend with Next.js and Tailwind CSS
  • ✅ Initialized backend with FastAPI & Strawberry
  • ✅ Created basic project structure
  • ✅ Set up basic backend project configuration and dependencies
  • ✅ CI/CD pipelines for frontend and backend applications
  • ✅ Project entities created
  • ✅ Alembic setup with first migration
  • ✅ REST API endpoints to handle github oauth, logout and token refresh
  • ✅ GraphQL queries and mutations for user, articles and comments

v1.0.0 - Frontend Integration

  • ✅ Apollo client (graphql) configured
  • ✅ Navbar and articles listing
  • ✅ Article inspect using tailwind prose to render article content formated in markdown
  • ✅ Theme toggle and code highlight for article content
  • ✅ Page to create articles using rich markdown editior with preview and fullscreen mode
  • ✅ Oauth flow with api implemented, custom hook to get user data stored in the context api, component to control interface rendering only when user is authenticated
  • ✅ Custom Apollo link to refresh access token and retry request when the access token expires (if the request fails again, the user session is terminated)
  • ✅ Page to list all articles owned by the current user and actions to edit the article and also delete
  • ✅ Articles comments implemented

About

Nowshare is a modern knowledge sharing platform, enabling communities to create, share, and discuss content efficiently

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages