Skip to content

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

License

Notifications You must be signed in to change notification settings

luis0ares/nowshare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 

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

License

Stars

Watchers

Forks

Packages

No packages published