Track the growth of your skills and projects. Get encouragement from friends by sharing your progress.
The app helps users keep track of all the many projects and skills they are working on.
Users can create projects that they are working on and commit progress reports as they complete work on a project. Users can associate progress with specific skills.
It will have a dashboard for projects, where projects can be overviewed by category. It will have a dashboard for skills a user has registered, and give an overview of what progress they have made with a specific skill across different projects.
Users will be able to publish/share their progress and projects. Users have a news feed where they receive published progress from other users. Users can subscribe to posts on specific skills, projects, topics, or users to prioritize posts from these sources in their feed.
Part One - Skills, Projects, Progress:
- Create projects with a title, description, and a predefined thumbnail
- Display a dashboard of projects.
- Add progress-comments to a project
- Add skills used to progress.
- Display a dashboard of skills where users can
- Filter progress by skill
- Display amount of progress committed pr skill
- Add ability to upload custom images to progress commits and projects
- Add user defined categories to projects
- Add categories to project dashboard
Part Two - Users
- Add user registration with Oauth / email-password
- Store user sessions in redis
Part Three - Social App
- Add ability to publish progress
- Add a news feed, that display published progress from all users
- Be able to subscribe to skills/ projects / users
- Prioritise posts you are subscribed too.
- Comment and react on posts.
Extra Bonus:
- Add friends and friends publish scope.
- Allow collaboration on projects.
The goal is to make a microservice architecture in docker compose.
Angular singlepage app.
Skills and Project api:
Koa, postgres and sequelize.
Social Media Posts:
Apollo graphql mongodb
Image upload api:
Koa for uploading resources nginx for serving files. Files stored in volume.
Authentication api:
Koa/express: user data stored in sql. user sessions stored in redis
create project
project dashboard
Project Table: id, title, thumbnail-link, creation date, description, ownerId
Progress-Project table: id, projectId, comment, creation date, authorId
Skills table: id, skillName:
Progress-Skill table: Id, progressId, skillId