{"id":21900780,"url":"https://github.com/soun1005/auth_next-express-postgres","last_synced_at":"2026-04-10T02:11:39.238Z","repository":{"id":218931205,"uuid":"747728782","full_name":"soun1005/auth_next-express-postgres","owner":"soun1005","description":null,"archived":false,"fork":false,"pushed_at":"2024-01-25T18:41:15.000Z","size":148,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-27T06:32:10.566Z","etag":null,"topics":["docker","jwt-authentication","nextjs","pern-stack","sequelize-orm"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soun1005.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-24T14:25:08.000Z","updated_at":"2024-01-26T18:15:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"f5202a00-ff22-4a8a-a59f-a5d7ee5e9cce","html_url":"https://github.com/soun1005/auth_next-express-postgres","commit_stats":null,"previous_names":["soun1005/auth_next-express-postgres"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soun1005%2Fauth_next-express-postgres","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soun1005%2Fauth_next-express-postgres/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soun1005%2Fauth_next-express-postgres/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soun1005%2Fauth_next-express-postgres/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soun1005","download_url":"https://codeload.github.com/soun1005/auth_next-express-postgres/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244913331,"owners_count":20530817,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","jwt-authentication","nextjs","pern-stack","sequelize-orm"],"created_at":"2024-11-28T15:10:22.405Z","updated_at":"2026-04-10T02:11:39.208Z","avatar_url":"https://github.com/soun1005.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project overview\n\n![sesame](https://github.com/soun1005/auth_next-express-postgres/assets/79379473/4e1fcc9e-eedc-4709-8e27-1e43ffe05da7)\n\n- This project is conducted as a technical test.\n- For this project, I had to build a signup and authentication system using Next.js and Express.js. Other choices of technologies were made by me.\n- The main page is the login page. Users can either log in or navigate to a page where they can sign up.\n- Using the provided API, once the user is logged in, the article page appears.\n- On the article page, user can logout or go to main page.\n- Login and signup forms are all validated.\n\n## Stack\n\n![Next.js](https://img.shields.io/badge/Front-Next.js-ff69b4) ![express](https://img.shields.io/badge/Back-Express.js-69cc8d) ![postgresql](https://img.shields.io/badge/DB-postgreSQL-305e8e) ![docker](https://img.shields.io/badge/DBbuild-Docker-0db7ed) ![bcrypt](https://img.shields.io/badge/Auth-bcrypt-6c5ce7) ![JWT](https://img.shields.io/badge/Auth-JWT-fb035b) ![axios](https://img.shields.io/badge/Fetch-Axios-671ddf) ![sequelize](https://img.shields.io/badge/DBORM-sequelize-52b1e7) ![CSS Module](https://img.shields.io/badge/Style-CSSModule-ffa)\n\n## Structure\n\n![sesame](https://github.com/soun1005/auth_next-express-postgres/assets/79379473/37c1745f-fc30-4713-ab63-1d64da47d193)\n\n#### Backend\n\n| Folders     | Description                                                     |\n| ----------- | --------------------------------------------------------------- |\n| DB          | Database connection configuration (migrations, models, configs) |\n| Controllers | Processes incoming requests and responses interacting with DB   |\n| Routes      | Each routes' endpoints defined and are connected to controllers |\n\n#### Frontend\n\n| Folders    | Description                                        |\n| ---------- | -------------------------------------------------- |\n| Components | Reusable components                                |\n| Hooks      | Custom hooks manage API calls for example, useAuth |\n\n# Deployment\n\n## 1. Requirements\n\n- [NodeJS (**version 12.18**)](https://nodejs.org/en/)\n- [Docker (**version 4.26**)](https://www.docker.com/)\n\n## 2. Installation\n\nClone the project\n\n```bash\n  git clone https://github.com/soun1005/auth_next-express-postgres\n```\n\n### 1) backend\n\nGo to the backend directory\n\n```bash\n  cd backend\n```\n\nInstall dependencies\n\n```bash\n  npm install\n```\n\nDocker compose\n\n```bash\n  docker-compose up -d\n```\n\nApply migrations\n\n```bash\n  npx sequelize-cli db:migrate\n```\n\nStart the server\n\n```bash\n  npm run start\n```\n\n---\n\n### 2) frontend\n\nGo to the project directory\n\n```bash\n  (Only if your terminal is in backend) cd ..\n  cd frontend\n```\n\nInstall dependencies\n\n```bash\n  npm install\n```\n\nStart the server\n\n```bash\n  npm run dev\n```\n\nif you see this message,\n\n```bash\n  Would you like to run the app on another port instead? › (Y/n)\n```\n\n    Press Y to say Yes\n\n---\n\n# Review of the project\n\n## Highlights\n\n- This project's purpose was technical test but I wanted to make this opportunity to learn something new. I had so much fun learning new technologies and apply it even though it was a small project.\n- It's always exciting testing API that I made with postman. When it works, I feel gooood😆\n\n## Difficulties\n\n- Applying new technologies(Like postgreSQL, Docker, sequelize) that I haven't used before was quite challenging.\n- At first I struggled to check what's in my DB.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoun1005%2Fauth_next-express-postgres","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoun1005%2Fauth_next-express-postgres","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoun1005%2Fauth_next-express-postgres/lists"}