habitus-api

🏄 API for Habitus App - State-of-the-art Tracker for emotions, habits and thoughts. | Gamified. | Anonymous and open source.

MIT License

Stars
6
Committers
2

API for Habitus App [Github - Frontend].

Habitus App is Unobtrusive and Easy to use Habit tracker.

Anonymous and Open-Source.

1. Technology

  • TypeScript
  • Koa.js
  • Database: MongoDB: Mongoose
  • Config: Dotenv, Joi
  • Testing: Jest: SuperTest, MongoDBMemoryServer
  • Docker: MongoDB

2. Features

  • 🥰 Emotion CRUD
  • 💪 Habit CRUD
  • 🆕 🏷 Tag CRUD
  • 🔐 JWT auth for Admin actions

3. Run

Docker

Runs MongoDB container.

cd docker
cp .env.example .env
docker-compose up -d

Application

# Return to root
cd ..
cp .env.example .env
npm i
npm run dev

4. Tests

Using Jest Testing Framework.

Jest uses SuperTest and MongoDBMemoryServer.

npm run test

5. Postman

Check out Postman Documentation.

Pre-set environment variables:

  • host
  • admin_password

Dynamic environment variables, automatically set in tests:

  • access_token
  • habit_id

6. Protected Routes [Admin access]

Few routes are protected with jwtCheck middleware.

Requests going to these routes require Authorization: Bearer {token} header.

Protected Routes

  • [Emotion,Habit][create,update,delete]

Getting access token

Endpoint: POST /auth/token.

Body: { password: ADMIN_PASSWORD }.

Admin password

ADMIN_PASSWORD is defined in .env file.

It defaults to secret.

7. Habitus Frontend

Written in TypeScript,

using Vue.js and Vuetify.

Join the open-source development - Github - Habitus App - Frontend.

Check the live version at habitus.today.

7. 1. Frontend preview

Check the gallery.

8. Social

Habitus