Praxys is a modern productivity and social accountability platform designed to help people turn intentions into consistent action.
Praxys is developed as an open source product with transparent planning, clean architecture, and contributor-friendly documentation.
Core Objectives:
- Help users stay focused, track tasks, and build lasting habits.
- Foster social accountability with shared goals and progress tracking.
- Build in public with high code quality, modular architecture, and modern developer tooling.
- Runtime & Framework: Node.js (v20+), Express.js, TypeScript (ESNext)
- Database & ORM: PostgreSQL, Prisma ORM
- Authentication & Security: JWT (JSON Web Tokens),
bcryptpassword hashing, customauth.middleware - Tooling:
tsx(live dev server),tsc,cors,dotenv
- Framework & Build: React 19, Vite, TypeScript
- Routing & State: React Router DOM (v7), React Hooks
- Styling: Tailwind CSS
- HTTP Client: Axios
| Feature Area | Status | Endpoints / Components |
|---|---|---|
| Database Schema | ✅ Implemented | PostgreSQL + Prisma: User and Task relational models |
| User Authentication | ✅ Implemented | POST /api/auth/register, POST /api/auth/login |
| Protected JWT Middleware | ✅ Implemented | apps/api/src/middlewares/auth.middleware.ts |
| Task Management API | ✅ Implemented | GET /api/tasks, POST /api/tasks, PATCH /api/tasks/:id, DELETE /api/tasks/:id |
| Frontend Auth Pages | ✅ Implemented | Home, Login, Register with React Router navigation & token persistence |
| Frontend Task Dashboard | 🔄 In Progress | Protected task board & creation UI (Week 4 sprint) |
- Node.js: v20+
- npm: v10+
- PostgreSQL: Running locally or hosted (e.g. Supabase, Neon, Docker)
- Navigate to the backend directory:
cd apps/api - Install dependencies:
npm install
- Configure environment variables in
.env:PORT=8000 DATABASE_URL="postgresql://user:password@localhost:5432/praxys?schema=public" DIRECT_URL="postgresql://user:password@localhost:5432/praxys?schema=public" JWT_SECRET="your_secure_jwt_secret"
- Run Prisma database migrations and generate client:
npx prisma migrate dev
- Start the development server:
The API will be available at
npm run dev
http://localhost:8000.
- Navigate to the frontend directory:
cd apps/web - Install dependencies:
npm install
- Start the Vite dev server:
The web application will be accessible at
npm run dev
http://localhost:5173.
All protected routes require the header Authorization: Bearer <token>.
POST /api/auth/register— Create a new account (name,email,password)POST /api/auth/login— Sign in and receive a JWT token (email,password)
GET /api/tasks— List all tasks for the logged-in userPOST /api/tasks— Create a new task (title,description?)PATCH /api/tasks/:id— Update task details or toggle completion (title?,description?,isCompleted?)DELETE /api/tasks/:id— Delete a task owned by the user
GET /— API root verificationGET /api/health— Service health and timestamp status
praxys/
├── apps/
│ ├── api/ # Express.js REST API with Prisma ORM
│ │ ├── prisma/ # Schema definitions & migrations
│ │ └── src/
│ │ ├── middlewares/ # JWT Auth Middleware
│ │ ├── routes/ # Auth and Task route controllers
│ │ └── server.ts # Express server entry point
│ └── web/ # Vite + React single-page frontend
│ └── src/
│ ├── components/ # UI Navbar & reusable components
│ ├── pages/ # Home, Login, Register, Dashboard
│ └── App.tsx # Route configurations
├── docs/ # Public open-source and setup guides
├── dev_docs/ # Architecture, Database, & Task specs
├── LICENSE
└── README.md
- Week 1: Database setup & Prisma
Userschema + Registration API ✅ - Week 2: React Router navigation + Login API & JWT token handling ✅
- Week 3: JWT Auth Middleware + Task CRUD API (
GET,POST,PATCH,DELETE) ✅ - Week 4: Frontend Task Dashboard, Protected Routes & API Integration 🔄
This project is licensed under the MIT License.
Md. Kamran Alam
- Software Developer & AI/ML Engineer