SkillSnap
is a project made for the Introduction to Web Applications course at AGH UST. It showcases a concept for an online skill exchange platform and demonstrates CRUD operations on a PostgreSQL database, as well as user authentication and authorization. Moreover, it features a frontend made with React. To avoid writing Chat functionality (limited time), I have assumed that the users can communicate via Discord (of course it's not the best solution).
- Languages:
- Go
- Typescript
- SQL
- Python (for API testing)
- Backend Libraries:
- sqlc
- github.com/alexedwards/flow (HTTP router)
- github.com/jackc/pgx (PostgreSQL driver)
- Frontend Libraries:
- React
- TanStack Query
- Formik
- Other:
- PostgreSQL
- Docker
- Docker Compose
The database schema is quite simple. It consists of 8 tables:
-
Make sure you have Docker, Docker Compose, NodeJS and vite installed on your machine.
-
Clone the repository:
git clone https://github.com/Mateusz2734/skillsnap.git
-
Change the directory:
cd skillsnap
-
Run the following command to start the backend:
docker-compose up [-d]
The -d flag is optional and it runs the containers in the background. Backend should be now available at
http://localhost:4444
. -
Change the directory to the frontend:
cd frontend
-
Install the dependencies:
npm install
-
Start the frontend:
vite
-
Open your browser and go to
http://localhost:5173
. -
You can use the following credentials to log in:
- user:
- username: user
- password: user1234
- admin:
- username: admin
- password: admin1234
- user:
- Chat functionality
- More thorough testing
- All API endpoints used in the frontend
- New design of skills and categories database schema
- Database migrations
SkillSnap
is released under the MIT License. See the LICENSE.md file for more details.